地址引用通用格式
地址或偏移(%基地址寄存器,%索引寄存器,比例因子)
计算结果=地址或偏移 + %基地址或偏移量寄存器 + 比例因子 * %索引寄存器
其中所有字段都是可选的。具体如何省略的,会在后面说明。注意,蓝色代表使用,绿色代表保被省略的部分。
直接寻址方式:
movl 0x1234, %eax
通式分解:地址或偏移(%基地址寄存器,%索引寄存器,比例因子)。
直接将0x12345(16进制地址)中保存的值存到寄存器eax中(单位字节,因为没有设置比例因子)
立即数寻址
movl $0x1234, %eax
通式分解:地址或偏移(%基地址寄存器,%索引寄存器,比例因子)。
在这里特意用了一个跟直接寻址很类似的格式表述。目的是为了区分立即数寻址和直接寻址。其实两条命令很像,在立即数寻址中,会在数字前多加一个$美元符号。这条命令执行的是将0x1234这个数字存到寄存器eax中去,单位是两个字节
间接寻址
movl (%eax), %ebx
通式分解: