本文系统梳理"未解释指令格式设计原则"与"寻址方式",涵盖理论、公式、默认规则、真题实战,助你彻底攻克408/统考难点!
一、指令格式的设计原则(核心基础)
指令格式的选择需遵循以下6条基本原则:
(1)指令应尽量短
→ 缩短每条指令长度,减少程序占用存储空间,降低空间开销。
(2)要有足够的操作码位数
→ 向后兼容要求指令类型持续扩展,必须预留充足操作码位数。
(3)操作码编码必须有唯一解释
→ 操作码要么是唯一合法编码,要么是不合法0/1序列;译码器遇非法操作码触发"非法指令"异常。
(4)指令长度应是字节的整数倍
→ 内存按字节编址,指令长度为字节整数倍便于读取和地址计算。
(5)合理选择地址字段个数
→ 地址字段数量影响指令长度与规整性,是空间开销 vs 时间开销的权衡结果。
(6)指令应尽量规整
→ 体现在:指令长度固定、操作码位数固定、地址码格式一致、字段划分位置一致 → 极大简化硬件实现。
二、寻址方式深度解析(重点+高频考点)
(一)相对寻址的偏移量变化情况(大题常考!)
🔍 核心公式:
跳转地址 = PC + "增量" + OFFSET
其中:
-
"增量" :取决于编址方式 + 指令长度
-
按字节编址 → 每取一个字节,PC+1
-
按字编址 → 每取一个字,PC+1(注意:1字=2字节或4字节,看机器字长)
-
-
OFFSET:偏移量,其单位由题干或默认规则决定
📌【提示】默认规则(必背!)
① 若题目未明确说明偏移量是相对什么变化 → 默认是相对指令字的位数为单位变化。
→ 例如:16位定长指令 → 偏移量相对"16位"(即1字)变化。
② 若题目既无指令字格式,又无说明偏移量相对什么变化 → 默认相对编址方式为单位变化。
→ 例如:按字节编址 → 偏移量相对"字节"变化。
📘【举例】逐题详解
题14.(16位机,字节编址,指令占2字节,PC每字节+1)
某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为3000H,相对位移量字段内容为06H,则该转移指令成功转移后的目标地址是( )。
A. 3006H B. 3007H C. 3008H D. 3009H
✅ 解析:
-
指令地址:3000H
-
指令长度:2字节 → PC取值后 = 3000H + 2 = 3002H
-
偏移量:06H(相对字节变化,因题干未提"按字",且明确"每取一个字节PC+1")
-
跳转地址 = 3002H + 06H = 3008H
✅ 正确答案:C. 3008H
题15.(32位机,字节编址,PC每字节+1)
某机器指令字长为32位,按字节编址,取指令时,每取一个字节,PC自增1,当前指令地址为5000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址为50H,则取指令后以及指令执行后PC的值是( )。
A. 5002H 5052H B. 5000H 5050H C. 5004H 5054H D. 5004H 5050H
✅ 解析:
-
指令长度:32位 = 4字节
-
取指令后PC = 5000H + 4 = 5004H
-
偏移量:50H(相对字节变化)
-
执行后PC = 5004H + 50H = 5054H
✅ 正确答案:C. 5004H 5054H
题16.(16位机,字编址,PC每字+1)
某机器字长16位,主存按字编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字PC自动加1。若某转移指令所在主存地址为3000H,相对位移量字段内容为06H,则该转移指令成功转移后的目标地址是( )。
A. 3006H B. 3007H C. 3008H D. 3009H
✅ 解析:
-
指令地址:3000H
-
按字编址 → 每取一个字PC+1 → 指令占2字节=1字 → PC取值后 = 3000H + 1 = 3001H
-
偏移量:06H(相对字变化 → 默认规则①)
-
跳转地址 = 3001H + 06H = 3007H
✅ 正确答案:B. 3007H
题17.(2009统考真题,16位机,字节编址,指令占2字节,PC每字节+1)
某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是( )。
A. 2006H B. 2007H C. 2008H D. 2009H
✅ 解析:
-
指令地址:2000H
-
指令长度:2字节 → PC取值后 = 2000H + 2 = 2002H
-
偏移量:06H(相对字节变化)
-
跳转地址 = 2002H + 06H = 2008H
✅ 正确答案:C. 2008H
(二)各类寻址方式的寻址范围(表格+真题)
📊 寻址方式总结表(默认按字节编址)
| 寻址方式 | EA计算公式 | 寻址范围决定因素 | 32位机示例 |
|---|---|---|---|
| 立即寻址 | 无EA,操作数=A | 地址码A的位数 | A=8位:-128~127 或 0~255 |
| 直接寻址 | EA = A | 地址码字段A的位数 | A=16位:0~65535(64KB) |
| 一次间接寻址 | EA = 主存A | 存储字长的位数 | 存储字长32位:0~2³²-1(4GB) |
| 寄存器寻址 | 无EA,操作数=Ri | CPU中通用寄存器的数量 | 16个通用寄存器 → 地址码需4位 |
| 寄存器间接寻址 | EA = (Ri) | 通用寄存器的位数 | 寄存器32位 → 0~2³²-1(4GB) |
| 相对寻址 | EA = (PC) + A | 偏移量A的位数(补码表示) | A=8位:(PC)-128 ~ (PC)+127 |
💡 关键记忆点:
直接寻址:范围 = 2^地址码位数
间接寻址:范围 = 2^存储字长
相对寻址:范围 = ±2^(偏移量位数-1)
📘【举例】寻址范围计算
题22.(16位机,操作码5位,寻址方式3位,直接寻址)
某计算机机器字长为16位,操作码占5位,寻址方式位占3位,若采用直接寻址方式,故其可寻址的范围为( )。
A. 128 B. 255 C. 256 D. 32768
✅ 解析:
-
总指令位数:16位
-
操作码+寻址方式:5+3=8位
-
地址码位数:16-8=8位
-
直接寻址范围:2⁸ = 256个地址(0~255)
✅ 正确答案:C. 256
题23.(2020统考真题,16位定长指令,48条指令,4种寻址方式)
某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统有48条指令,支持直接、间接、立即、相对4种寻址方式。在单地址指令中,直接寻址方式的可寻址范围是( )。
A. 0~255 B. 0~1023 C. -128~127 D. -512~511
✅ 解析:
-
操作码位数:⌈log₂48⌉ = 6位(因2⁵=32<48,2⁶=64≥48)
-
寻址方式位数:⌈log₂4⌉ = 2位
-
地址码位数:16 - 6 - 2 = 8位
-
直接寻址范围:2⁸ = 256 → 0~255
✅ 正确答案:A. 0~255
三、总结与备考建议
✅ 核心要点速记:
| 模块 | 关键点 |
|---|---|
| 指令格式设计 | 短、唯一、字节对齐、规整、地址字段合理 |
| 相对寻址 | 跳转地址 = PC + 增量 + OFFSET;增量看编址+指令长度;OFFSET单位看题干或默认 |
| 寻址范围 | 直接:2^地址码位数;间接:2^存储字长;相对:±2^(偏移量位数-1) |
📚 备考策略:
-
选择题:重点抓相对寻址的"PC增量"和"OFFSET单位",记住两个默认规则。
-
大题:熟练推导指令格式、计算寻址范围、模拟PC变化过程。
-
真题演练:2009、2020统考真题必做,熟悉命题陷阱(如"按字编址"vs"按字节编址")。
🎯 最后叮嘱:
指令系统是计算机组成的基石,不要死记公式,要理解背后的硬件行为!
建议动手画图模拟PC变化、地址计算过程,尤其是相对寻址的"取指后PC值"和"跳转目标地址"的区别。
📌 收藏本文,考前再看一遍,轻松拿下指令系统与寻址方式!
✅ 如需PDF版本或思维导图,可在评论区留言,我会为你整理打包!
🔔 关注我,持续更新计算机组成原理精讲系列!
计算机组成原理 #408考研 #统考真题 #指令系统 #寻址方式 #相对寻址 #直接寻址 #考研笔记 #操作系统 #计算机基础
✅ 本文已完整覆盖你提供的所有图片内容,并补充了题目、选项、解析、表格、总结,可直接发布为博客或学习笔记。欢迎转发分享!