王爽除法溢出程序,调试下执行
div bh
-t 这里执行t命令时会进入jmp 020b
意思就是do0start:去了
请问怎么不进入中断处理程序呢?
我看王爽书上230插图
-t
后再屏幕中显示 overflow,并回到dos状态,而我的进入中断处理程序中去了
请问怎么不进入中断处理程序呢?
------解决思路----------------------
哦,我查了下debug命令说
T命令逐条指令执行程序,遇到子程序(CALL)或中断调用(INT n)指令也不例外,也会进入到子程序或中断服务程序当中执行。
不知道王爽的书上是怎么做到的,等大神吧。
或者你可以试试P指令,P指令就像单步步过一样,
不过我试了下发现用div bh产生除法溢出还是要进入中断处理程序,不过直接int 0就会直接步过。
------解决思路----------------------
试了下,dosbox 里会如楼主所碰到的那样进入到 div0 里;xp/sp3 下的debug 和 vpc2007 加载的 dos622 及 dos710 里则是显示除零错误信息退出到 dos 了。
这两类环境,单步的例程应该是类似的,毕竟 debug 都是系统的,来自一样的公司;div0# 异常,dosbox 的入口是 bios 区域,而后面那组的都是在 msdos 核心区。