-->

如何“MOV(%EBX,EAX%,4),%eax中”的工作? [重复](How does “mo

2019-07-19 23:30发布

这个问题已经在这里有一个答案:

  • 什么是MOV(%R11,%r12,1),EDX%的含义是什么? 2个回答

一直致力于在组装任务,并在大多数情况下我明白了装配得很好。 或者也至少不够好这项任务。 但这个MOV语句绊倒了我。 我真的很感激,如果有人可以只解释这MOV语句是如何操作的寄存器值。

MOV(%EBX,%eax中,4),%eax中

PS我不是能够通过基本搜索找到这个特定类型的MOV声明,所以我appologize如果我只是错过了它,我再提出问题。

Answer 1:

在AT&T组件的完整存储器寻址模式的格式是:

offset(base, index, width)

因此,对于您的情况:

offset = 0
base = ebx
index = eax
width = 4

这意味着该指令是这样的:

eax = *(uint32_t *)((uint8_t *)ebx + eax * 4 + 0)

在C状伪代码。



文章来源: How does “mov (%ebx,%eax,4),%eax” work? [duplicate]