0號中斷處理程序

在除法溢出時屏幕打印 "divide error!"

 

安裝程序:

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 "divide error!"
    
do0start:
    mov ax,cs
    mov ds,ax
    mov si,202h
    
    mov ax,0b800h
    mov es,ax
    mov di,12*160+36*2
    
    mov cx,13
    
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

 

除法溢出程序1:

 

assume cs:code

code segment
start:
    mov ax,1000h
    mov bh,1
    div bh
    mov ax,4c00h
    int 21h
    
    
code ends
end start

 

 

 

除法溢出程序2,中斷例程:

assume cs:code

code segment
start:
    int 0h
    mov ax,4c00h
    int 21h
    
    
code ends
end start

 

 

結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章