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

Assembly X86:寻址模式-寄存器值更改,assembly,x86-64,addressing-mode,Assembly,X86 64,Addressing Mode,这可能很愚蠢,但对这些类型的说明有一点疑问: MOV EBX,dword ptr [RAX + 0x28] 这是否会改变RAX的值?比如: 移动EBX中RAX+0x28所指的值,然后添加,add RAX,0x28。因此,简而言之,RAX的值在该操作后是否会改变?否,它使用RAX的值,但不会改变它 这就像有一个C表达式i+1。这不会更改i的值,它只使用它。您所描述的类似于表达式i+=1否,与ARM或PowerPC不同,x86没有任何将有效地址写回基址寄存器的寻址模式 也没有明确的前/后inc/d

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

MOV EBX,dword ptr [RAX + 0x28]
这是否会改变
RAX
的值?比如:


移动
EBX
RAX+0x28
所指的值,然后添加,
add RAX,0x28
。因此,简而言之,
RAX
的值在该操作后是否会改变?

否,它使用
RAX
的值,但不会改变它


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

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

也没有明确的前/后inc/dec寻址模式,如m68k。(对于RSP或RDI/RSI,推送/弹出和
MOV
/
STO
/
LOD
/等具有内置的隐式递增/递减寻址。)