我正在 x86 上调试我的代码,如果结果不为零,则问题可以追溯到 AND 指令有时不会清除 ZF 标志。这是有问题的代码段:
0257A9F9 mov edx,dword ptr [ecx+18h] 0257A9FC 和 edx,80000h 0257AA02 整数 3 0257AA03 0257AA2A
我在 AND 之后添加了一个断点进行调试。当它在断点 EDX==0x80000 和 ZF==1 处停止时。但是如果 EDX!=0,ZF 应该被清除。该代码在调试器中单步运行时运行良好,但在正常运行期间始终失败。
这是调试器会话的屏幕截图。
有什么提示吗?
如果这很重要,代码是由 JIT 生成的,所以我正在执行数据。
先感谢您。