几条简单代码
请高手帮忙看下这个地方,这4句设置单步异常
003B33A8 9C pushfd
003B33A9 804C24 01 01 or byte ptr [esp+1], 1
003B33AE 9D popfd
003B33AF 90 nop
pushfd之前
标志寄存器是
(百度图片不能外链,只能写个地址)
http://hiphotos.baidu.com/space/pic/item/8d5494eef01f3a29516ffa5e9925bc315d607cfe.jpg
这是标志位的值。
执行pushfd之后,栈顶是00000346,二进制是11 0100 0110
也就是tf位是1,但是压栈之前tf是0啊,pushf应该就是把标志寄存器压进去啊,但是之前tf是0,压栈之后看到的值显示的是1,同时这几句执行完之后tf还是0,没有出现异常。
[解决办法]
调试器调试的原因吧? 因为调试器要执行单步调试,TF必须是1啊.要不然,就不能返回调试器了吧.
[解决办法]
调试器调试的原因吧? 因为调试器要执行单步调试,TF必须是1啊.要不然,就不能返回调试器了吧.