中断处理程序 中断处理程序的编写方法和子程序的比较相似,下面是常规的步骤: 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