我有以下代码:为什么此CMP指令失败?
CMP BYTE PTR [ESP+5],61 ; ESP is 0012F9AC
JNZ SHORT ....
以下是在存储器现在
Address Data
0012F9AC 0012FA94
0012F9B0 61616161
0012F9B4 61616161
,我的理解是,它是在比较0x61的值的方式(0x0012F9AC + 5)这是0x12F9B1。根据内存“转储”,地址0x12F9B1处的值为0x61。那么为什么它仍然坚持跳跃?
顺便说一句,它是61十进制还是61十六进制?如果显示的代码片段是你输入到汇编程序中的东西,那么它可能会理解61作为小数,从而导致cmp失败 – BlackBear 2012-08-07 15:43:12
我很确定它是0x61。它来自'aaaaaaaa'的文本输入,将'========'放入3D3D3D3D内存中,然后它也不会跳转。当然,我错过了一些简单的东西,我仍然是一个asm的noob – 2012-08-07 16:34:29