X86:寻址模式-寄存器值更改

时间:2019-07-23 19:45:45

标签: assembly x86-64 addressing-mode

这可能很愚蠢,但是对这些类型的说明有一点疑问:

MOV EBX,dword ptr [RAX + 0x28]

这会更改RAX的值吗?像这样:

RAX + 0x28中移动EBX所指向的值,然后添加Add RAX, 0x28。简而言之,RAX的值在此操作后是否发生变化?

2 个答案:

答案 0 :(得分:3)

否,它使用RAX的值,不会更改它。

这就像有一个C表达式i + 1。这不会更改i的值,只会使用它。您所描述的就像表达式i += 1

答案 1 :(得分:1)

否,与ARM或PowerPC不同,x86没有任何将有效地址写回基址寄存器的寻址模式。

也没有像m68k这样的显式pre / post inc / dec寻址模式。 (push / pop和movs / stos / lods /等。对于RSP或RDI / RSI,内置了隐式递增/递减寻址。 )