我有以下代碼:爲什麼此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