section .data
fun:
add word[L+2],0x203
L: mov eax,0x1020304 ; this instruction including operand stored in 5 byte in memory
ret
「楽しい」機能は何をしますか?eaxの新しい値が0x1040604になる理由
わかりmov eax, 0x1020304
ました。5バイトのエンコーディングを使用したがあります(6バイトのエンコーディングもありますが、無視しましょう)。したがって、次のようになります(覚えておいてください-リトルエンディアン):
B8 04 03 02 01
ここで、LはB8を指し、L + 2は03を指します。0x0203を追加すると(覚えておいてください-リトルエンディアン)、03が03に追加され、02が02に追加されるため、次のようになります。
B8 04 06 04 01
これは:
mov eax, 0x01040604