这可能很愚蠢,但是对这些类型的说明有一点疑问:
MOV EBX,dword ptr [RAX + 0x28]
这会更改RAX
的值吗?像这样:
在RAX + 0x28
中移动EBX
所指向的值,然后添加Add RAX, 0x28
。简而言之,RAX
的值在此操作后是否发生变化?
答案 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,内置了隐式递增/递减寻址。 )