x86 寻址方式众多,什么直接寻址、间接寻址、基址寻址、基址变址寻址等等让人眼花缭乱,而 AT&T 语法对内存寻址方式做了一个很好的统一,其格式为 section:displacement(baseindexscale),其中 section 是段地址,displacement 是位移,base 是基址寄存器,index 是索引,scale 是缩放因子,其计算方式为线性地址=section + displacement + base + index*scale,最重要的是,可以省略以上格式中的一个或多个部分,比如 movw 4, %ax 就是把内存地址 4 中的值移动到 ax 寄存器中,movw 4(%esp), %ax 就是把 esp+4 指向的地址中的值移动到 ax 寄存器中,依此类推。

①汇编指令后面跟有操作数长度的后缀,比如 mov 指令,如果操作数是 8 位,则用 movb,如果操作数是 16 位,则用 movw,如果操作数是 32 位,则用 movl,如果操作数是 64 位,则用 movq,其余指令依此类推

 

相关文章:

  • 2021-09-07
  • 2021-08-19
  • 2022-12-23
  • 2022-01-05
  • 2021-11-18
  • 2021-12-16
  • 2021-11-24
  • 2021-12-12
猜你喜欢
  • 2021-12-12
  • 2022-01-16
  • 2021-07-18
  • 2022-01-25
  • 2022-12-23
  • 2021-10-19
  • 2022-12-23
相关资源
相似解决方案