《【汇编】重写0号中断(除法溢出中断) 》中的中断程序只在程序运行时有效,程序返回后即失效,下面给出程序返回后仍有效的中断程序:
assume cs:code
code segment
;除法中断在中断向量表中的位置是0000:0000~0000:0003
;0000:0000~0000:0001存放偏移地址(IP)
;0000:0002~0000:0003存在段地址(CS)
start: mov ax,0
mov es,ax
mov word ptr es:[0],200h
mov word ptr es:[2],0
;复制中断程序到0000:200
mov di,200h
mov ax,cs
mov ds,ax
mov si,offset do0
mov cx,offset do0end - offset do0
cld
rep movsb
mov ax,4c00h
int 21h
;除法中断处理过程
do0: jmp short do0_start
db "chu fa yi chu la"
do0_start:mov ax,cs
mov ds,ax
mov si,202h
mov ax,0b800h
mov es,ax
mov di,160*12+2*36
mov cx,16
s: mov al,ds:[si]
mov es:[di],al
inc si
add di,2
loop s
mov ax,4c00h
int 21h
do0end: nop
code ends
end start