GNU汇编

  1. 操作数方向和 Intel 语法的刚好相反。

  2. 寄存器名称有 "%" 前缀

  3. 立即数以 "$" 为前缀。

  4. 存储器操作数的大小取决于操作码名字的最后一个字符。操作码后缀 'b' 、'w'、'l' 分别指明了字节(8位)、字(16位)、长型(32位)存储器引用。

  5. 基址寄存器变为 "(" 和 ")"。另外,在 Intel 语法中, 间接内存引用"section:base + index\*scale + disp",在 AT&T中变为 "section:disp(base, index, scale)"。

  6. 需要牢记的一点是,当一个常量用于 disp 或 scale,不能添加 "$" 前缀。

Intel AT&T
mov eax,ecx movl (%ecx),%eax
mov eax,ebx+3 movl 3(%ebx),%eax
add eax,ebx+ecx\*2h addl (%ebx,%ecx,0x2),%eax
sub eax,ebx+ecx\*4h-20h subl -0x20(%ebx,%ecx,0x4),%eax
----- -----
----- -----

"="修饰符表明它是一个只读的输出操作数。

"r" 表明可以使用任一寄存器存储操作数。

参考链接:

  1. https://www.linuxprobe.com/gcc-how-to.html
  2. https://blog.csdn.net/superSmart_Dong/article/details/117573516
相关推荐
是星辰吖~20 小时前
函数战争:内存领地的争夺与撤退
汇编
止观止1 天前
在 WSL2 上从零搭建 ARM 混合编程环境
汇编·arm开发·嵌入式开发·混合编程
say_fall2 天前
8086汇编程序设计_从基础到实战
开发语言·汇编·8086
浩浩测试一下2 天前
LoadPE &&& 原理以及作用 (ASM汇编版本)>>01
汇编·免杀·pe结构·windows编程·二进制逆向·系统loadpe
ThornArmor3 天前
【控制篇】斩断无休止空转:4-bit 指令集里的跳转律令与时序状态机
c语言·汇编·c++·单片机·嵌入式硬件
大阳1233 天前
ARM4.(通过汇编,c语言,固件库点亮LED)
c语言·开发语言·汇编
iCxhust3 天前
8086 汇编 TINY 和 SMALL 编程MODEL区别
汇编·单片机·嵌入式硬件·操作系统·微机原理·8088单板机
say_fall4 天前
从零开始学x86汇编_16位指令系统完全指南
开发语言·汇编·计算机组成·微机原理
txg6666 天前
编译无关的漏洞检测:基于 Transformer 的 LLVM-IR 与汇编鲁棒建模
汇编·深度学习·安全·transformer
浩浩测试一下6 天前
汇编 16位32位64位通用寄存器(逆向分析)
汇编·windows·stm32·单片机·嵌入式硬件·逆向·二进制