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

结果:

原文地址:https://www.cnblogs.com/luocodes/p/13754054.html