寻址方式表达通用表达式
ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER)
地址或偏移(%基址寄存器,%索引寄存器,%比例因子) #所有字段都是可选的
地址和偏移以及比例因子必须是常量,其余的两个必须是寄存器,如果省略任何一项将会默认为0.
BTW:
Intel风格汇编 mov destination,operand
AT&T风格汇编 movl operand,destination
- 直接寻址方式:
如
movl address, %eax #在Intel风格汇编中,address 和%eax相反而且地址寄存器无需使用% 标识
- 索引寻址方式:
如
movl string_start(,%ecx,1), %eax #该指令中将string_start+1 * %ecx得到的数值加载到 %eax 中
- 间接寻址方式 注意: 将地址中的数值加载到寄存器中
如
movl (%ecx) %eax
- 基址寻址方式
如
movl 4(%eax) %ebx #该指令将eax寄存器的后四个字节地址中的数值加载到ebx中
- 立即寻址
如
movl $12, %eax #这里将数字12 加载到eax寄存器,与intel风格不同的是,intel直接可以用12无需$.
如果不加$ 将会变成直接寻址
-
寄存器寻址方式
寄存器寻址是将寄存器中的数据移入和移出.
寄存器 %eax 布局
网友评论