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
相关推荐
要记得喝水3 天前
汇编中常用寄存器介绍
开发语言·汇编·windows·c#·.net
技术领导力5 天前
华为开源CANN,再次释放“昇腾转向”信号
汇编
DONG9139 天前
Python 中的可迭代、迭代器与生成器——从协议到实现再到最佳实践
开发语言·汇编·数据结构·python·算法·青少年编程·排序算法
embrace9912 天前
【C语言学习】scanf函数
c语言·开发语言·汇编·学习·青少年编程·c#·编辑器
麦兜*12 天前
【算法】十大排序算法超深度解析,从数学原理到汇编级优化,涵盖 15个核心维度
java·汇编·jvm·算法·spring cloud·ai·排序算法
会掉头发13 天前
x86_64汇编
汇编
CHANG_THE_WORLD13 天前
NEG指令说明
汇编·逆向·neg
南玖yy17 天前
Linux 桌面市场份额突破 5%:开源生态的里程碑与未来启示
linux·运维·服务器·汇编·科技·开源·gradle
GeekMax18 天前
(笔记)U-boot 2012.10 armv7启动汇编解析
汇编
南玖yy20 天前
Linux权限管理:从“Permission denied“到系统安全大师
linux·运维·汇编·后端·架构·系统安全·策略模式