照着王爽的书里面的代码依样画葫芦,写下除法溢出时的0号中断处理程序。
代码如下:
assume cs:code
code segment
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
start:
mov ax,cs
mov ds,ax
mov si,offset do0 ;设置ds:si指向源地址
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax,
0
mov es,ax
mov di,200h ;设置es:di指向目的地址
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov cx,offset do0end
-
offset do0
cld ;设置传输方向为正
rep movsb
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax,
0
mov es,ax
mov word ptr es:[
0
],200h ;设置中断向量的入口地址的偏移地址
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov word ptr es:[
2
],
0
;设置中断向量的入口地址的段地址
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
;测试程序
mov ax,1000h
mov bl,
1
div bl
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax,4c00h
int
21h
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
do0: jmp
short
do0start
db
"
divide error!
"
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
do0start:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax,cs
mov ds,ax
mov si,202h ;设置ds:si指向字符串
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax,0b800h
mov es,ax
mov di,
12
*
160
+
35
*
2
;设置es:di指向显存空间的中间位置
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov cx,13d ;设置字符串长度
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
s: mov al,[si]
mov es:[di],al
inc si
add di,
2
;因为一个字符占两个字节的空间
loop s
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
mov ax, 4c00h
int
21h
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
do0end:nop
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
code ends
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
end start