我是汇编程序的小菜鸟,但是我有一点需要大量反思的作业,我必须修改中断子程序,例如当我调用int21h时,我想显示一条消息HELLO WORD,或者当我想除以0,例如我想显示数字5,所以我知道向量中断的所有段是CS:0000,偏移量是0084(对于int21h),当我想调用int21时是否请求,我想要我的微处理器执行另一个可以在 [0700:1200] 中找到的程序,所以我需要更改内容 0000:0084 ( int 21 的地址);我试过一个想法是 mov [0000],0700 mov [0084],1200
但不幸的是不起作用有我的例子
org 100
mov dx,000
push ds
mov ds,dx
lea bx,qwert
mov [0084h],1500h
int 21h hlt
org 1200
jmp qwert
pa equ 20h
pb equ 22h`
pc equ 24h
regcontrol equ 26h
tab db 3fh,06h,5bh,4FH,66H,6Dh,7dh,07h,7fh,6fh
com equ 90h
qwert:
mov ax,com
out regcontrol,ax
debut:
mov al,0FFH
OUT pc,al
call tempo
mov al,00h
out pc,al
call tempo
jmp debut
ret
proc tempo
mov cx,7fffh
ici:nop
nop
nop
nop
nop
nop
loop ici
ret
endp
所以,我想要的是什么时候执行int21h,我想这个中断直接去执行程序qwerty,程序qwerty创建于0700:0112(我使用emu 8086),但是int 21h直接进入f400:1500 .
我希望你能理解我,并为我糟糕的英语感到抱歉