news 2026/5/11 22:13:26

【30天精通汇编】Day 2: CPU架构与寄存器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【30天精通汇编】Day 2: CPU架构与寄存器

【30天精通汇编】Day 2: CPU架构与寄存器

📅 学习时间:4-5小时
🎯 学习目标:理解CPU工作原理,掌握x86寄存器
💡 难度:★★☆☆☆


📝 Day 1 练习题答案

练习1: - 10110(二进制) = 16+4+2 = 22(十进制) - 42(十进制) = 101010(二进制) - 11011110(二进制) = DE(十六进制) 练习2: -10的8位补码: 10 = 0000 1010 取反 = 1111 0101 加1 = 1111 0110 = 0xF6 练习3: 0xAB & 0x0F = 0x0B (1010 1011 & 0000 1111 = 0000 1011)

1. CPU是什么

1.1 CPU的角色

CPU = Central Processing Unit = 中央处理器 把计算机比作一个工厂: 【内存 (仓库)】 存放数据,等待被处理 ↑↓ 数据搬运 【CPU (车间)】 - 寄存器 (工作台):临时存放数据 - 运算单元 (加工机器):执行计算 CPU的工作: 1. 从内存取指令 2. 解码指令 3. 执行指令 4. 存储结果

1.2 CPU的基本组成

【CPU的基本组成】 1. 控制单元 (CU) - 解析指令,控制执行流程 2. 寄存器组 (Registers) - 临时存储数据 3. 算术逻辑单元 (ALU) - 执行加减乘除运算 4. 缓存 (Cache) - 高速临时存储

2. x86架构演进

2.1 从8086到x64

年代 CPU 位数 寄存器名 1978 8086 16位 AX, BX, CX, DX 1985 80386 32位 EAX, EBX, ECX, EDX 2003 x86-64 64位 RAX, RBX, RCX, RDX 命名规则: AX = 16位 (原始) EAX = Extended AX = 32位 RAX = 64位 (x64架构) 关系(从大到小嵌套): RAX (64位) -> EAX (低32位) -> AX (低16位) -> AH (高8位) + AL (低8位)

3. x86通用寄存器(32位)

3.1 四大数据寄存器

四大数据寄存器: EAX - 累加器 (Accumulator) 用途:算术运算结果、函数返回值 EBX - 基址寄存器 (Base) 用途:存储内存地址基址 ECX - 计数器 (Counter) 用途:循环计数、字符串操作 EDX - 数据寄存器 (Data) 用途:I/O操作、乘除法扩展

3.2 指针和索引寄存器

指针和索引寄存器: ESP - 栈指针 (Stack Pointer) 用途:指向栈顶(非常重要!) EBP - 基址指针 (Base Pointer) 用途:指向栈帧底部 ESI - 源索引 (Source Index) 用途:字符串操作的源地址 EDI - 目的索引 (Destination Index) 用途:字符串操作的目标地址

3.3 指令指针和标志寄存器

指令指针和标志寄存器: EIP - 指令指针 用途:指向下一条要执行的指令 EFLAGS - 标志寄存器 用途:存储CPU状态标志 EIP是最重要的寄存器之一! 控制EIP就能控制程序执行流程。

4. 标志寄存器详解

4.1 常用标志位

EFLAGS寄存器各位含义: 位 名称 全称 含义 ───────────────────────────────────────────────── 0 CF Carry Flag 进位/借位标志 2 PF Parity Flag 奇偶标志 4 AF Adjust Flag 辅助进位标志 6 ZF Zero Flag 零标志(结果是否为0) 7 SF Sign Flag 符号标志(结果正负) 11 OF Overflow Flag 溢出标志 最常用的: CF - 无符号运算溢出 ZF - 结果是否为零(用于比较) SF - 结果的符号位 OF - 有符号运算溢出

4.2 标志位示例

例1:1 - 1 = 0 执行后:ZF = 1(结果为零) 例2:-1 + 1 = 0(有符号) 执行后:ZF = 1, CF = 1(产生进位) 例3:5 - 10 = -5 执行后:SF = 1(结果为负) 例4:127 + 1 = 128(8位有符号) 实际结果:-128(溢出!) 执行后:OF = 1(有符号溢出)

5. x64寄存器扩展

5.1 64位寄存器

x64在x86基础上扩展: 原有寄存器扩展到64位: RAX, RBX, RCX, RDX RSP, RBP, RSI, RDI RIP, RFLAGS 新增8个通用寄存器: R8, R9, R10, R11, R12, R13, R14, R15 每个新寄存器也有低位访问: R8 → R8D (低32位) → R8W (低16位) → R8B (低8位)

5.2 x64调用约定

Windows x64调用约定: 参数1: RCX 参数2: RDX 参数3: R8 参数4: R9 其余参数:通过栈传递 返回值:RAX Linux x64调用约定: 参数1: RDI 参数2: RSI 参数3: RDX 参数4: RCX 参数5: R8 参数6: R9 其余参数:通过栈传递 返回值:RAX

6. 段寄存器

段寄存器: CS - 代码段:存放代码的内存段 DS - 数据段:存放数据的内存段 SS - 栈段:存放栈的内存段 ES - 附加段:额外的数据段 FS - 附加段:Windows下指向TEB/TIB GS - 附加段:Linux x64下用于TLS 在32位保护模式下,段寄存器存放"段选择子" 在64位模式下,大多数段寄存器基址为0(平坦内存模型)

7. 寄存器使用总结

记忆口诀: "累加器做运算,基址寄存器找地址, 计数器管循环,数据寄存器帮乘除。 栈指针在栈顶,基址指针在栈底, 源索引取数据,目的索引放数据。 指令指针最重要,控制程序往哪跑。" 关键点: 1. EAX通常存返回值 2. ECX用于循环计数 3. ESP/EBP用于栈操作 4. EIP决定下一条指令 5. 标志位影响条件跳转

8. 练习题

练习1:寄存器识别(难度:★☆☆☆☆)

说出以下寄存器的主要用途:

  • EAX
  • ESP
  • ECX

练习2:标志位理解(难度:★★☆☆☆)

执行 5 - 5 后,哪个标志位会被设置为1?

练习3:寄存器关系(难度:★★☆☆☆)

如果RAX = 0x123456789ABCDEF0,求EAX, AX, AL的值?


9. 小结

[CPU基础] 1. CPU = 控制单元 + ALU + 寄存器 2. 取指令 → 解码 → 执行 → 存储 [x86寄存器] 3. 通用寄存器:EAX, EBX, ECX, EDX 4. 指针寄存器:ESP, EBP, ESI, EDI 5. 特殊寄存器:EIP, EFLAGS [标志位] 6. ZF - 零标志 7. SF - 符号标志 8. CF - 进位标志 9. OF - 溢出标志 [x64扩展] 10. 扩展到64位:RAX, RBX... 11. 新增:R8-R15

下一篇预告:Day 3 - 内存与寻址模式


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 15:11:46

什么是智能场馆预订系统?带活动管理与积分营销的源码介绍

温馨提示:文末有资源获取方式 在移动互联网时代,用户入口分散,管理需求复杂,场馆运营者需要的是一个全面、集成、能打通线上线下的一体化解决方案。下面深入介绍一款以多端适配为核心优势的场馆预订系统源码,解析其如何…

作者头像 李华
网站建设 2026/5/9 12:21:24

AI开发-python-langchain框架(1-8-2 缓存机制——验证缓存的效果)

在AI应用中,缓存机制的经济价值不仅节省Token成本,还能消除用户等待焦虑、提升系统吞吐量、保障服务稳定性——这才是企业级应用的真正痛点。  当用户提出一个常见问题时,首次调用大模型需要经历网络传输、排队等待、模型推理等完整链路&am…

作者头像 李华
网站建设 2026/5/11 6:03:26

2026高职大数据管理与应用专业应届生学数据分析的技术价值分析

行业需求与就业前景数据分析在各行业的渗透率持续上升,金融、电商、医疗等领域对数据分析人才需求旺盛。2026年预计数据分析岗位缺口将进一步扩大,高职专业学生掌握技能后可覆盖初级分析师、数据运营等岗位。企业招聘数据显示,大数据管理与应…

作者头像 李华
网站建设 2026/4/23 14:32:24

Java语言提供了八种基本类型。六种数字类型

Java 语言提供了 八种基本数据类型(primitive types),它们是 Java 中最基础、最直接的数值/逻辑表示方式,不依赖于对象(不像包装类 Integer、Double 等)。 官方标准表述(来自 Oracle Java 文档…

作者头像 李华
网站建设 2026/5/3 17:50:31

(9-1)电源管理与能源系统:电池选择与安全

本章内容围绕人形机器人电源管理与能源系统展开,系统介绍了人形机器人的整机能源方案的设计思路与工程实现。首先从电池选型与安全出发,分析不同锂电池类型的性能特点,介绍了电池保护电路与热管理在保障系统可靠性中的关键作用。随后讲解了机…

作者头像 李华