首页 > 代码库 > 汇编试验十二 编写0号中断的处理程序
汇编试验十二 编写0号中断的处理程序
要求:除法溢出的时候,在屏幕中心处显示overflow!
分析:
- 0号中断,对应的中断入口地址中的程序可以不用修改,放到内存0:空余位置(空余位置一般是0000::0200~0000:02FF)于是,就将显示字符串的程序放到这里;
- 用一个do0安装程序,将这个中断程序复制到内存0000:0200那里去;格式是:es:di 目的地址,ds:si源程序,cld复制方向,rep movsb 复制
- 子程序(中断程序)中,显示的字符串,不能放到一个独立的代码段,而是放到一个中断程序本身里面,因为复制程序运行完后,内存释放,代码段中的内容可能改变;
- 重新写一个程序故意除法溢出
效果:
Source Code:
assume cs:codecode segmentstart: mov ax,cs mov ds,ax mov si,offset do0 ;ds:si指向源地址 mov ax,0 mov es,ax mov di,200h ;es:di指向目的地址 cld rep movsb mov ax,0 mov es,ax mov word ptr es:[0*4],200h mov word ptr es:[0*4+2],0 mov ax,4c00h int 21h do0: jmp short do0start db "overflow!" do0start: mov ax,cs mov ds,ax mov si,202h ;ds:si指向字符串,复制到0:200处 mov ax,0b800h mov es,ax mov di,12*160+36*2 ;显示位置 mov cx,9 s: mov al,[si] mov es:[di],al inc si add di,2 loop s mov ax,4c00h int 21h do0end:nopcode endsend start
assume cs:codecode segmentstart:mov ax,1000hmov bh,1div bhcode endsend start
汇编试验十二 编写0号中断的处理程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。