;************************************************
;编写程序,使得在除法溢出时,在屏幕中间显示字符串
;"divide error!"然后返回dos
;************************************************
assume cs:code,ss:stack
stack segment
db 128 dup(0)
stack ends
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 word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0 ;设置中断向量表
int 0 ;调用零号中断试试
do0: ;显示中断处理程序
jmp short do0start
db "divide errors! "
do0start:
mov ax,cs
mov ds,ax
mov si,202h
mov ax,0b800h
mov es,ax
mov di,12*160+36*2 ;计算dos中间位置
mov cx,14
s: mov al,[si]
mov es:[di],al
inc si
loop s
mov ax,4c00h
int 21h
do0end:nop
code ends
end start