【发布时间】:2012-09-20 10:29:44
【问题描述】:
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
【问题讨论】:
-
.data部分的代码在做什么? -
没有给出,只是这个...问题是什么有趣的返回(返回值在eax中)
-
不,我不明白。它不应该改变价值。 0203 应该完全写入已经存在的常量中的 0203。无论如何,0x1040604 是不可能的——04 和 06 是从哪里来的?他们无处可寻。
-
我认为因为在 L 中有 5 个字节在内存中,所以必须将 2 个字节的 word[L+2] 添加到 203.... 但是什么是 [L+2]确切地?所以 2+2 和 3+3 是 4 和 6 但我不明白
-
我认为假设函数以 eax 值返回,所以我认为答案应该在 mov eax 1020304.... 行之前,但我得到 2030 + 203 即 4033 而不是 4060