Sca*_*olo 3 assembly att addressing-mode
一直在进行装配任务,而且大部分时间我都很了解装配.或者至少对这项任务来说已经足够了.但这个mov声明让我感到沮丧.如果有人能解释这个mov语句如何操作寄存器值,我真的很感激.
mov(%ebx,%eax,4),%eax
PS我无法通过基本搜索找到这种特定类型的mov语句,所以如果我错过了它并且正在提问,我会道歉.
AT&T组件中的完整内存寻址模式格式为:
offset(base, index, width)
Run Code Online (Sandbox Code Playgroud)
所以对于你的情况:
offset = 0
base = ebx
index = eax
width = 4
Run Code Online (Sandbox Code Playgroud)
意味着指令是这样的:
eax = *(uint32_t *)((uint8_t *)ebx + eax * 4 + 0)
Run Code Online (Sandbox Code Playgroud)
在类似C的伪代码中.