汇编语言 第三版 王爽 实验12 编写0号终端的处理程序

来源:互联网 发布:印度 巴基斯坦 知乎 编辑:程序博客网 时间:2024/06/05 16:59

题目:

编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回dos

代码:

assume cs:codecode segmentstart:mov ax,cs     ;要执行的d0段复制到空白内存处作为中断处理程序mov ds,axmov si,offset do0mov ax,0mov es,axmov di,200Hmov cx,offset do0end - offset do0cldrep movsb;设置0中断码的中断向量mov word ptr es:[0*4],200Hmov word ptr es:[0*4+2],0mov ax,0000H;溢出测试mov dx,1H;结果为10000H 溢出mov bx,1Hdiv bxmov ax,4c00hint 21hdo0:jmp short do0start  ;两个字节db 'divide error!'do0start:mov ax,csmov ds,axmov si,202hmov ax,0B800hmov es,axmov di,12*160+36*2   ;显示的偏移地址mov cx,13s:mov al,[si]mov es:[di],alinc siadd di,2loop smov ax,4c00hint 21hdo0end:nopcode endsend start
结果:

输入p 返回dos

注意:

do0开始的jmp short指令占两个字节,如果写成 jmp指令,占3个字节!


0 0
原创粉丝点击