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
答案 0 :(得分:2)
好的,你有一个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