8086汇编(40)中断处理程序
2019-04-04 本文已影响0人
迷心迷
中断处理程序
中断处理程序的编写方法和子程序的比较相似,下面是常规的步骤:
1)保存用到的寄存器
2)处理中断
3)恢复用到的寄存器
4)用iret指令返回。
编程处理0号中断(除法错误)
1)编写可以显示"overflow!"的中断处理程序: do0;
2)将do0送入内存0000:2000处;
3)将do0的入口地址0000:0200存储在中断向量表0号表项中。
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset do0
mov ax, 0
mov es, ax
mov di,200h
mov cx, offset do0end-offset do0
cld
rep movsb
mov ax, 0 ;设置中断向量表
mov es, ax
mov word ptr es:[0*4], 200h
mov word ptr es:[0*4+2],0
mov ax,4c00h
int 21h
do0:
jmp short do0start
db "overflow!"
do0start:
mov ax, cs
mov ds, ax
mov si, 202h
mov ax, 0b800h
mov es, ax
mov di, 12*160+36*2 ;设置es:di指向显存空间的中间位置
mov cx, 9
s:
mov al, [si]
mov es:[di], al
inc si
add di, 2
loop s
mov ax, 4c00h
int 21h
do0end:
nop
code ends
end start