8086匯編(40)中斷處理程序

中斷處理程序

中斷處理程序的編寫方法和子程序的比較相似,下面是常規(guī)的步驟:

1)保存用到的寄存器

2)處理中斷

3)恢復用到的寄存器

4)用iret指令返回。

編程處理0號中斷(除法錯誤)

1)編寫可以顯示"overflow!"的中斷處理程序: do0;

2)將do0送入內(nèi)存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   

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容