一直在从事装配作业,并且在很大程度上我对装配非常了解。或者至少对于这项任务来说足够好。但这个 mov 的声明让我很困惑。如果有人能解释这个 mov 语句如何操作寄存器值,我将非常感激。
mov (%ebx,%eax,4),%eax
附:我无法通过基本搜索找到这种特定类型的 mov 语句,因此,如果我错过了它并重新提出问题,我深表歉意。
AT&T汇编中完整的内存寻址方式格式为:
offset(base, index, width)
所以对于你的情况:
offset = 0
base = ebx
index = eax
width = 4
这意味着该指令类似于:
eax = *(uint32_t *)((uint8_t *)ebx + eax * 4 + 0)
在类似 C 的伪代码中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)