【计算机系统原理】Intel 与 AT&T 汇编指令格式转换

目录

核心转换规则

常见寄存器名对应的AT&T指令后缀

练习1:逐条指令转换与含义说明

[1. push ebp](#1. push ebp)

[2. mov edx, DWORD PTR esp + 8](#2. mov edx, DWORD PTR [esp + 8])

[3. mov al, 255](#3. mov al, 255)

[4. mov WORD PTR ebp + 20, cx](#4. mov WORD PTR [ebp + 20], cx)

[5. lea eax, ecx + edx \* 2 + 4](#5. lea eax, [ecx + edx * 2 + 4])

[练习2: 更精简版本](#练习2: 更精简版本)


核心转换规则

特性 Intel 格式 AT&T 格式
操作数顺序 目标, 源 (dst, src) 源, 目标 (src, dst)
寄存器命名 直接写寄存器名(如 ebp 寄存器名前加 % 前缀(如 %ebp
立即数 直接写数值(如 255 立即数前加 $ 前缀(如 $255
操作数大小 BYTE/WORD/DWORD PTR 显式指定 用指令后缀 b(8 位)/w(16 位)/l(32 位) 指定
内存寻址 [基址 + 索引*比例 + 偏移] 偏移(基址, 索引, 比例)

常见寄存器名对应的AT&T指令后缀

练习1:逐条指令转换与含义说明

1. push ebp
  • AT&T 格式pushl %ebp
  • 指令含义 :将 32 位基址指针寄存器 ebp 的值压入栈中,常用于函数栈帧初始化,保存旧栈帧基地址。

2. mov edx, DWORD PTR [esp + 8]
  • AT&T 格式movl 8(%esp), %edx
  • 指令含义 :从栈指针 esp 偏移 8 字节的内存地址处,读取一个 32 位双字(DWORD)数据,存入寄存器 edx,通常用于获取函数参数。

3. mov al, 255
  • AT&T 格式movb $255, %al
  • 指令含义 :将立即数 255(8 位)存入 8 位累加器寄存器 al,后缀 b 明确操作数为字节(8 位)。

4. mov WORD PTR [ebp + 20], cx
  • AT&T 格式movw %cx, 20(%ebp)
  • 指令含义 :将 16 位寄存器 cx 的值,写入到基址指针 ebp 偏移 20 字节的内存地址处,后缀 w 明确操作数为字(16 位)。

5. lea eax, [ecx + edx * 2 + 4]
  • AT&T 格式leal 4(%ecx, %edx, 2), %eax
  • 指令含义 :计算有效地址 ecx + edx×2 + 4,并将该地址值存入 32 位寄存器 eaxlea 指令本质是地址计算,不访问内存)。

练习2: 更精简版本

相关推荐
通信小呆呆3 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick3 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee3 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e3 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨3 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
ofoxcoding3 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
cqbzcsq3 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan3 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend3 天前
理论学习:什么是 Coding Agent?
学习