1.中断处理程序及其结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9db8c85ff564ddba2008028dee1494c.png)
2.除法错误中断
![在这里插入图片描述](https://img-blog.csdnimg.cn/ead7325257814b78b2071b5ef1ad743a.png)
3.思路
![在这里插入图片描述](https://img-blog.csdnimg.cn/89b59f19f4994d8d838919c8e704276a.png)
4.程序框架
![在这里插入图片描述](https://img-blog.csdnimg.cn/e5914e4de950447bbb899fd3d13346a6.png)
5.步骤
(1)安装程序的实现
![在这里插入图片描述](https://img-blog.csdnimg.cn/b492f405e3424efd8e48dc4abd2af484.png)
(2)子程序的实现、设置中断向量表
![在这里插入图片描述](https://img-blog.csdnimg.cn/c82cca381f864a9aae5904416c5cd772.png)
(3)小结
![在这里插入图片描述](https://img-blog.csdnimg.cn/9482bd5966254c4d896ae69b4aa157e3.png)
6.代码
assume cs:codesg
codesg segment
main:
;do0安装程序
mov ax,cs
mov ds,ax
mov si,offset do0 ;源程序代码和数据
mov ax,0
mov es,ax
mov di,200h ;目标位置0:200h
cld ;将方向标志位DF清零,si和di都会递增
mov cx,offset do0end - offset do0 ;偏移地址之差,表示这段代码包含的字节总数,作为循环次数
rep movsb
;设置中断向量表
mov word ptr es:[0*4],200h ;中断类型码为0的ip
mov word ptr es:[0*4+2],0 ;中断类型码为0的cs
;中断处理子程序:显示字符串"overflow!"
do0:jmp short do0start
db "overflow!"
do0start:
mov ax,cs ;在前面cs已经设置为0
mov ds,ax
mov si,202h ;源数据的位置。因为jmp指令占两个字节的数据
mov ax,0b800h
mov es,ax
mov di,12*160+80 ;目标位置:显示器中央
mov cx,9
s:mov al,ds:[si]
mov byte ptr es:[di],al
inc si
add di,2
loop s
mov ax,4c00h
int 21h
do0end:nop ;nop No Operation 无操作的空指令,占位
codesg ends
end main
7.测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ba31d1959ec4e9f8153a6918995dd6b.png)