vault backup: 2026-07-04 12:32:07

This commit is contained in:
2026-07-04 12:32:07 +08:00
parent ba1ad4e098
commit 36c88d8b9b
9 changed files with 1207 additions and 155 deletions

View File

@@ -2,6 +2,10 @@
> 📖 本章介绍机器指令系统的分类、寻址方式和指令格式设计。
> 🎯 重点理解寻址方式和指令格式设计
>
> **考试范围**7.1~7.4.1、7.5节不考,但 RISC vs CISC 对比属于常考内容。
> **复习重点**例题7.1~7.7课后习题7.1~7.8、7.16~7.19
> **本章核心考点**:寻址方式分析(有效地址+操作数、扩展操作码设计、CISC vs RISC、指令格式分析
---
@@ -14,6 +18,7 @@
- [[#7.5 RISC技术]]
- [[#本章小结]]
- [[#例题与解析]]
- [[#真题与作业精选]]
---
@@ -89,6 +94,9 @@ graph TB
扩展操作码就像邮政编码系统短操作码常用指令用短编码节省空间长操作码不常用指令用长编码种类多。4位操作码15条三地址指令1111保留8位操作码15条二地址指令12位操作码15条一地址指令16位操作码16条零地址指令。
> [!tip] 考试提示
> 扩展操作码设计是期中/期末的高频考点。核心思路先确定操作码需要的位数操作种类数取log2向上取整再用剩余位作为地址码。如果要扩大寻址范围可以考虑间接寻址用间接寻址可以把有效地址扩展到整个存储空间
---
## 7.2 操作数类型和操作类型
@@ -122,6 +130,9 @@ graph TB
## 7.3 寻址方式
> [!tip] 考试提示
> 寻址方式分析是本章最高频的考点几乎每年都会出题。关键要会算有效地址EA和操作数并能判断每种寻址方式需要访存几次。
### 7.3.1 指令寻址
**顺序寻址**PC = PC + 1按顺序执行指令
@@ -141,12 +152,27 @@ graph TB
**寄存器间接寻址**操作数地址在寄存器中比如MOV A, [R1]。盒子里有一张纸条告诉你东西在哪里,灵活可以动态改变地址,需要访问内存。
**基址寻址**操作数地址 = 基址 + 偏移量比如MOV A, [BASE + 100]。东西在仓库的某个区域,用区域号+偏移量定位,适合程序重定位。
**基址寻址**有效地址 EA = A + (BR)其中BR是基址寄存器内容不变A是形式地址可变。东西在仓库的某个区域,用区域号+偏移量定位,适合程序重定位。
**变址寻址**操作数地址 = 变址 + 偏移量比如MOV A, [INDEX + 100]。东西在仓库的某个位置,用变址+偏移量定位,适合数组访问。
**变址寻址**有效地址 EA = A + (IX)其中IX是变址寄存器内容可变A是形式地址不变。东西在仓库的某个位置,用变址+偏移量定位,适合数组访问。
> [!important] 基址 vs 变址的区别(考试常考)
> - **基址寻址**BR基址寄存器内容固定形式地址A可变。用于程序重定位。
> - **变址寻址**IX变址寄存器内容可变形式地址A固定。用于数组遍历等。
>
> 例题:变址寄存器(IX)=0004HPC=0003H。
> - 变址寻址EA = A + (IX) = A + 0004HA不变IX可变。
> - 基址寻址EA = A + (BR) = A + (BR)BR不变A可变。
**相对寻址**:操作数地址 = PC + 偏移量比如JMP +10跳转到PC+10的位置。东西在当前位置的某个偏移位置适合相对跳转。
> [!tip] 访存次数分析(复习资料原题)
> 不同寻址方式的访存次数是考试重点:
> - `ADD 04H, R0`直接寻址3次访存取指2次 + 取操作数1次
> - `ADD (04H), R0`间接寻址4次访存取指2次 + 取数1次 + 写回1次
>
> 规律:每多一层间接,就多一次访存。考试中要仔细区分直接寻址和间接寻址。
---
## 7.4 指令格式
@@ -161,30 +187,32 @@ graph TB
指令格式设计就像设计邮票:规整性指令长度对齐便于译码,高效性常用指令短不常用指令长,兼容性新处理器能运行旧程序,扩展性保留一些编码用于未来扩展。
### 7.4.2 指令格式举例
**x86指令格式**:变长指令,格式复杂,代码密度高兼容性好,译码复杂。
**ARM指令格式**:固定长度指令,格式简单,译码简单速度快,代码密度低。
---
## 7.5 RISC技术
> [!tip] 考试提示
> CISC vs RISC 对比是本章的经典考点,经常以简答题或对比题的形式出现。要记住两者在指令数量、指令长度、控制方式、流水线支持等方面的区别。
### 7.5.1 RISC与CISC对比
| 特性 | RISC | CISC |
|------|------|------|
| 指令数量 | 少 | 多 |
| 指令数量 | 少(几十条) | 多(几百条) |
| 指令长度 | 固定 | 可变 |
| 寻址方式 | 简单 | 复杂 |
| 寻址方式 | 简单(少) | 复杂(多) |
| 指令周期 | 单周期 | 多周期 |
| 流水线 | 支持 | 部分支持 |
| 流水线 | 支持(友好) | 部分支持 |
| 编译器 | 复杂 | 简单 |
| 控制方式 | 硬布线控制 | 微程序控制 |
| 代表 | ARM、MIPS | x86 |
RISC精简指令集指令少简单速度快容易实现流水线但编译器复杂代码密度低CISC复杂指令集指令多复杂功能强编译器简单代码密度高但难以实现流水线速度慢。
ARM处理器手机、MIPS处理器嵌入式是RISCx86处理器个人电脑是CISC。
> 记忆口诀RISC——少而精、快而简、硬布线、流水线CISC——多而全、慢而杂、微程序、编译简。
### 7.5.2 RISC特点
**主要特点**
@@ -217,6 +245,7 @@ ARM处理器手机、MIPS处理器嵌入式是RISCx86处理器
| 操作码 | Operation Code | 指明操作类型 |
| 地址码 | Address Code | 指明操作数地址 |
| 寻址方式 | Addressing Mode | 找到操作数的方式 |
| 有效地址 | Effective Address | 实际访问的存储器地址 |
| RISC | Reduced Instruction Set Computer | 精简指令集计算机 |
| CISC | Complex Instruction Set Computer | 复杂指令集计算机 |
@@ -292,22 +321,101 @@ RISC像精简工具工具少简单速度快容易使用效率高但功能
---
## 📖 真题与作业精选
> 以下题目来自期中/期末考试、课后作业及复习资料,是本章最常考的题型。
### 真题1寻址方式求有效地址复习资料原题
**题目**:已知变址寄存器(IX)=0004HPC=0003H分别说明变址寻址和基址寻址的有效地址计算方式并指出两者的关键区别。
**答**
- 变址寻址EA = A + (IX) = A + 0004H。这里形式地址A固定不变变址寄存器IX的内容可以改变适合用于数组遍历——每次循环只需修改IX即可访问数组的不同元素。
- 基址寻址EA = A + (BR)。这里基址寄存器BR的内容固定不变形式地址A可以改变适合程序重定位——整个程序加载到不同内存区域时只需修改BR。
**关键区别**基址时BR不变A可变程序搬家只需改BR变址时A不变IX可变遍历数组只需改IX
### 真题2指令访存次数复习资料原题
**题目**:分析以下指令各需几次访存:
1. `ADD 04H, R0`
2. `ADD (04H), R0`
**答**
1. `ADD 04H, R0`直接寻址3次访存。
- 取指令需要2次访存PC先指向指令地址取指令后PC+1若指令跨存储字边界则需取两次
- 取操作数需要1次访存直接从地址04H读取操作数
2. `ADD (04H), R0`间接寻址4次访存。
- 取指令需要2次访存
- 间接寻址需要先从04H取出真正的地址再从该地址取操作数共2次访存
- 注意:如果该指令还需要写回结果到内存,访存次数还会增加
> 规律总结:直接寻址比间接寻址少一次访存。考试中要注意区分直接寻址的`04H`和间接寻址的`(04H)`——括号表示"间接"。
### 真题3扩展操作码设计期中原题
**题目**某指令系统共有78种操作指令字长为16位。问
1. 操作码至少需要多少位?
2. 剩余多少位可用于地址码?
3. 若要将寻址范围扩大到2^16可以采用什么方法
**答**
1. 78种操作操作码需要的位数 = ceil(log2(78)) = 7位因为2^6=64<782^7=128>=78
2. 地址码位数 = 16 - 7 = 9位。
3. 9位地址码只能寻址2^9=512个单元远小于2^16。可以采用**间接寻址**来扩大寻址范围——指令中的9位地址指向一个存储单元该单元中存放的才是16位的有效地址从而实现对2^16=65536个单元的寻址。
> [!tip] 解题技巧
> 扩展操作码设计题的关键步骤①算操作码位数log2向上取整②用指令字长减去操作码位数得到地址码位数③计算寻址范围④如果寻址范围不够考虑间接寻址扩展。这是期中考试曾经考过的原题务必掌握。
### 真题4CISC vs RISC 对比(考试高频简答题)
**题目**从指令数量、指令长度、寻址方式、控制器实现、指令周期和流水线支持等方面比较CISC和RISC。
**答**
| 比较项目 | CISC | RISC |
|----------|------|------|
| 指令数量 | 多(几百条),功能强 | 少(几十条),精简 |
| 指令长度 | 可变,不固定 | 固定长度 |
| 寻址方式 | 多种,灵活复杂 | 少数几种,简单 |
| 控制方式 | 微程序控制 | 硬布线控制 |
| 指令周期 | 多周期,时间长 | 单周期(多数),时间短 |
| 流水线 | 部分支持,难以高效流水 | 天然友好,易于流水线实现 |
| 编译器 | 简单,硬件做更多事 | 复杂,编译器做优化 |
| 编程 | 编程方便,指令表达力强 | 编程相对麻烦 |
| 代表 | x86PC处理器 | ARM手机、MIPS嵌入式 |
CISC的设计哲学是"硬件做更多事"让编程更方便RISC的设计哲学是"软件做更多事"让硬件更简单高效。现代处理器中x86内部其实也采用了类似RISC的微操作来提高效率。
---
## ⚡ 知识点速记卡
> 考前快速过一遍30秒回忆整章核心
**指令 = 操作码 + 地址码**。操作码指明做什么,地址码指明操作数在哪。
**地址码个数**四地址A1 OP A2 A3下条在A4、三地址A3、二地址A1、一地址ACC OP A1 ACC、零地址栈操作
**地址码个数**四地址A1 OP A2 -> A3下条在A4、三地址->A3、二地址->A1、一地址ACC OP A1 -> ACC、零地址栈操作
**扩展操作码**:地址数越少,操作码越长,指令种类越多。常用指令用短操作码,不常用指令用长操作码。
**扩展操作码**:地址数越少,操作码越长,指令种类越多。常用指令用短操作码,不常用指令用长操作码。操作码位数 = ceil(log2(操作种类数))。
**七种寻址方式**:立即(数在指令里,最快)、直接(地址在指令里)、间接(地址指向的位置存着真正地址)、寄存器(数在寄存器,最快之一)、寄存器间接(寄存器里存地址)、基址(基址+偏移,适合重定位)、变址(变址+偏移适合数组、相对PC+偏移,适合跳转)。
**七种寻址方式**:立即(数在指令里,最快)、直接(地址在指令里)、间接(地址指向的位置存着真正地址,多一次访存)、寄存器(数在寄存器,最快之一)、寄存器间接(寄存器里存地址)、基址(EA=A+(BR)BR不变A可变适合重定位、变址EA=A+(IX)A不变IX可变适合数组、相对PC+偏移,适合跳转)。
**RISC vs CISC**RISC指令少、固定长度、单周期、流水线友好、硬布线控制ARM/MIPSCISC指令多、可变长度、多周期、微程序控制x86
**指令格式设计**:规整性(长度对齐)、高效性(常用指令短)、兼容性(向后兼容)、扩展性(留余地)。
> **本章常见考题类型**
> 1. 寻址方式识别与有效地址计算(必考)
> 2. 扩展操作码设计(期中考过原题)
> 3. 访存次数分析(注意直接/间接寻址的区别)
> 4. CISC vs RISC对比简答题高频考点
> 5. 指令格式分析与设计
---
## 🔗 相关链接
@@ -321,3 +429,4 @@ RISC像精简工具工具少简单速度快容易使用效率高但功能
*本章难度:⭐⭐⭐⭐ 中等*
*重要程度:⭐⭐⭐⭐ 重要*
*考试占比:期中/期末约10~15分以寻址方式和扩展操作码设计为主*