标签:指令 方法 style offset oop 寄存器 复用 flow 入口
中断处理程序的编写方法和子程序的比较相似,下面是常规的步骤:
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
标签:指令 方法 style offset oop 寄存器 复用 flow 入口
原文地址:https://www.cnblogs.com/gkp307/p/9946672.html