三、实验内容、程序清单及运行结果
1.编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回到DOS。
代码:
CODES SEGMENT
ASSUME CS:CODES
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 ;IP
mov word ptr es:[0*4+2],0 ;CS
;将do0的入口地址存储在中断向量表0号表项中。
mov ax,1000h
mov bh,1
div bh
MOV AH,4CH
INT 21H
do0:
;让"divide error!"常驻内存
jmp short do0start
db "divide error!"
do0start:
;设置数据源地址
mov ax,cs
mov ds