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