Intel X86 的内存寻址模式
1. 直接寻址(Direct memory addressing mode)
通过立即数直接指定偏移地址,段地址隐含在指令中,当然也可以人为指定段寄存器。
MOV EAX, [0X8FFCBC]
MOV EAX, DWORD PTR DS:[0X8FFCBC]
2. 寄存器间接寻址(Register based indirect addressing mode)
偏移地址通过寄存器给出,默认的段寄存器跟使用的基址寄存器有关,如果用了ESP,EBP则默认堆栈段SS,否则默认为数据段DS,这些都可以自行更改。
MOV EAX, [EBX]
MOV EAX, DWORD PTR DS:[EBX]
MOV EAX, DWORD PTR SS:[ESP]
MOV EAX, DWORD PTR DS:[ESP]
3. 寄存器相对寻址(Register relative addressing mode)
相对的意思以寄存器为基址,通过立即数指定相对基址的偏移量,二者共同构成相对段地址的偏移地址