当前位置:   article > 正文

【ATT 与 Intel】汇编与C语言相互调用及内联汇编_att汇编

att汇编

一、ATT 与 Intel

x86架构的处理器的汇编指令一般使用有两种:

  • ATT 汇编
  • Intel 汇编

常用的汇编器:

  • MS VC 编译器:只支持 Intel 格式
  • GNU CC 编译器:支持 ATT 格式和 Intel 格式,一般从 gcc 的上层开始调用像cc、ar 等工具。

ATT 与 Intel 汇编代码格式区别如下:

  • Intel 代码省略了指示大小的后缀。我们看到指令 push 和 mov,而不是 pushq 和 movq
  • Intel 代码省略了寄存器名字前面的 ‘ % ’ 符号,用的是 rbx,而不是 %rbx
  • Intel 代码用不同的方式来描述内存中的位置,例如是 ‘ QWORD PTR [rbx] ’ 而不是 ‘ (%rbx) ’
  • 在带有多个操作数的指令情况下,列出操作数的顺序相反。例如,ATT格式:mov 源操作数, 目的操作数;Intel格式:mov 目的操作数, 源操作数
  • ATT 注释使用 ’ # ',Intel 注释使用 ’ ; ’

详细的区别参考:AT&T与Intel格式的汇编语法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/346648
推荐阅读
相关标签