学习了王爽老师编写的汇编语言(第三版)第十二章内中断,我想看看触发除法溢出中断后程序显示提示信息“Divide overflow”于是编写了一个除法溢出的程序
assume cs:code
code segment
start:
mov ax,1000h
mov bh,1
div bh
mov ax, 4c00h
int 21h
code ends
end start
在dos以及dosbox上运行,一个能够引发中断,一个不能。是不是dosbox不支持中断触发啊?那我接下来需要修改中断程序的话会不会把dos本身自己的中断给覆盖掉?
确实是dosbox似乎不支持中断 我试了很久 用debug出来的都是???
郁闷 vm装的是11 不支持32位的系统了
等会还要装个vm10 或9 试试32位xp
卡着真难受
我最近看这本书也碰到这个问题了,后来我发现好像是在dosbox里的debug里直接用a来写命令,然后执行的都是单步跟踪,因为执行了div bh后,cs
和ip里的值会正确的变为0和200,之后用-u命令会看到下面的都是我们自己写的0号中断处理程序。
所以我就单独写了一个asm程序,内容就是三行:
mov ax,1000
mov bh,1
div bh
在debug里直接执行这个exe就会正确的在屏幕中间显示 devide overflow!了
我和你一样,我用的是visual studio code的dosbox,也没有出现divide overflow