除法溢出引发中断过程的IP是那条指令的IP
mov ax,0ffffH
mov bl,1
div bl
nop
执行 div bl时,引发中断过程,那么在push IP的时候,是那一条指令的IP入栈,div bl指令的IP,还是nop指令的IP 我早就看到了这个问题,只是我的调试环境出现了一些问题
花了点时间,我修好了我的调试环境,现在给出调试过程
可以看到是 div bl 的地址入栈
能够说明下是什么原因吗?除法溢出引发的中断与
int 0 引发的中断有什么区别吗?跪求!!!!!! tancs 发表于 2019-11-9 21:40
能够说明下是什么原因吗?除法溢出引发的中断与
int 0 引发的中断有什么区别吗?跪求!!!!!!
除法溢出引发的中断与int 0 引发的中断有什么区别吗?
没有区别 那为什么压入栈中的ip的值不一样?
由int 0 引发中断时的压入栈中的ip的值是下一条指令的ip
而由除法溢出引发中断压入栈中ip的值是它本指令的ip呢? tancs 发表于 2019-11-10 09:20
那为什么压入栈中的ip的值不一样?
由int 0 引发中断时的压入栈中的ip的值是下一条指令的ip
而由除法溢出 ...
嗯,我试了一下,int 0压入栈中的的确是下一条指令的ip
其实没有什么为什么,硬件就是这样设计的,如果你想问为什么这样设计,这样设计有什么好处的话
你可以看一看这本书
《Intel® 64 and IA-32 Architectures》
intel的官方文档,里面应该有这样设计的理由,大概吧
我英语能力不行,目前还不具备翻这本书的能力
如果你有兴趣,可以在这本书中找一找,看看有没有你想要的答案
谢谢你,帮我解决了困扰了我好几天的问题,3Q
页:
[1]