汇编基础

差别

核心维度 Intel 格式 AT&T 格式
数据流向 (DST / SRC) 指令 目的(DST), 源(SRC)(左边是被赋值者,符合 a = b 逻辑) 指令 源(SRC), 目的(DST)(数据从左向右流动,类似 a -> b)
寄存器标识 直接书写名称 例:eax, rsp 必须加 % 前缀 例:%eax, %rsp
立即数 (常数) 直接写数值 例:100, 0x10 必须加 $ 前缀 例:$100, $0x10
数据长度控制 修饰内存地址 (byte ptr, dword ptr) 例:mov dword ptr [ebx], 1 在指令末尾加后缀 (b, w, l, q) 例:movl $1, (%ebx)
内存寻址表示 [base + index*scale + disp] 例:[ebx + ecx*4 + 0x10] disp(base, index, scale) 例:0x10(%ebx, %ecx, 4)
类型扩展指令 使用显式功能指令名 (movsx, movzx) 例:movsx eax, bx 组合源与目的的尺寸后缀 (movswl, movzwl) 例:movswl %bx, %eax
典型代表工具 Visual Studio、x64dbg、IDA Pro、Ghidra GCC、GDB、Linux 内核源码、GNU Assembler

汇编基础
https://fu01.github.io/posts/84aee333/
作者
Fu01
发布于
2026年10月7日
许可协议