照着王爽的书里面的代码依样画葫芦,写下除法溢出时的0号中断处理程序。
代码如下:
assume cs:code
code segment

start:
mov ax,cs
mov ds,ax
mov si,offset do0 ;设置ds:si指向源地址

mov ax,
0
mov es,ax
mov di,200h ;设置es:di指向目的地址

mov cx,offset do0end
-
offset do0
cld ;设置传输方向为正
rep movsb

mov ax,
0
mov es,ax
mov word ptr es:[
0
],200h ;设置中断向量的入口地址的偏移地址

mov word ptr es:[
2
],
0
;设置中断向量的入口地址的段地址

;测试程序
mov ax,1000h
mov bl,
1
div bl

mov ax,4c00h
int
21h

do0: jmp
short
do0start
db
"
divide error!
"

do0start:

mov ax,cs
mov ds,ax
mov si,202h ;设置ds:si指向字符串

mov ax,0b800h
mov es,ax
mov di,
12
*
160
+
35
*
2
;设置es:di指向显存空间的中间位置

mov cx,13d ;设置字符串长度

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