匯編語言(第3版,王爽著):實驗12 編寫 0 號中斷的處理程序

實驗12 編寫 0 號中斷的處理程序
  • 我們要做以下幾個事情:
  1. 編寫可以顯示 "divide error!" 的中斷處理程序:do0
  2. 將 do0 送入內(nèi)存 0000:0200 處
  3. 將 do0 的入口地址 0000:0200 存儲在中斷向量表 0 號表項中
  4. 編寫一個除法溢出的測試程序,用于觸發(fā)除法錯誤,產(chǎn)生內(nèi)中斷
  • 代碼實現(xiàn):

文件名:exp12.asm

assume cs:code

code segment

    start:
        mov ax, cs
        mov ds, ax
        mov si, offset do0                      ; 設(shè)置 ds:si 指向源地址

        mov ax, 0
        mov es, ax
        mov di, 200h                            ; 設(shè)置 es:di 指向目的地址

        mov cx, offset do0end - offset do0      ; 設(shè)置 cx 為傳輸長度
        cld                                     ; 設(shè)置傳輸方向為正
        rep movsb

        ; 設(shè)置中斷向量表
        mov ax, 0
        mov es, ax
        mov word ptr es:[0 * 4], 200h           ; 中斷處理程序的偏移地址
        mov word ptr es:[0 * 4 + 2], 0h         ; 中斷處理程序的段地址

        mov ax, 4c00h
        int 21h


    do0:
        jmp short do0start
        db "divide error!"
    do0start:
        mov ax, cs
        mov ds, ax
        mov si, 202h                            ; 設(shè)置 ds:si 指向字符串

        mov ax, 0b800h
        mov es, ax
        mov di, 12*160 + 36*2                   ; 設(shè)置 es:di 指向顯存空間的中間位置

        mov cx, 13                              ; 設(shè)置 cx 為字符串的長度
    s:
        mov al, ds:[si]
        mov es:[di], al
        mov byte ptr es:[di + 1], 02h           ; 設(shè)置字符屬性
        inc si
        add di, 2
        loop s

        mov ax, 4c00h
        int 21h


    do0end:
        nop

code ends

end start
  • 跟蹤調(diào)試過程:


    實驗12 跟蹤調(diào)試過程
  • 測試程序:
    參考書本第 12 章中的例子,編寫一個除法溢出的測試程序

文件名:exp12div.asm

assume cs:code

code segment
    start:
        mov ax, 1000h
        mov bh, 1
        div bh

        mov ax, 4c00h
        int 21h
code ends

end start
  • 測試程序的聯(lián)調(diào)測試過程:


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

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

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