0

次の分解があります。

[dest] = d5 cd e8 ca 68

movzx   eax, [ebp+dest]
# value of edx at this point is: F7FBB898
movsx   edx, al
# value of edx after this is: FFFFFFD5

# [ebp+var_E] stores 0
movzx   eax, [ebp+var_E]
movsx   eax, al
# eax = 0 here
add     eax, edx
# eax becomes FFFFFFD5
cmp     eax, 0D5h
jnz     short loc_565564E6

以下に、各命令の説明と流れを示します。

  1. [dest] から 1 バイトを読み取り、eax に格納します。
  2. edx の初期値は F7FBB898 です。あと、movsx edx、al命令はFFFFFFD5になります。この時点で edx の値が 0x000000d5 であることを確認するにはどうすればよいですか?

これらの操作の後、eax の最終値が 0xFFFFFD5 ではなく 0xd5 になるように、[dest] の初期値はどうあるべきか

4

1 に答える 1