25考研计算机组成原理复习·4.1指令系统/4.2指令的寻址方式

指令系统

指令格式

  1. 一条指令由操作码、地址码组成,其中地址码可能有0-4个
  2. 按地址码数目分类:零/一/二/三/四地址指令
  3. 按指令长度分类
    1. 指令字长:指一条指令所包含的二进制代码的位数,其取决于操作码的长度、地址码的长度和地址码的个数。
    2. 定长指令字结构:所有指令长度相等
    3. 变长指令字结构:各种指令的长度随指令功能而异
  4. 按操作码长度分类
    1. 定长操作码:指令系统中所有指令的操作码长度都相同
    2. 可变长操作码:指令系统中各指令的操作码长度可变
  5. 按操作类型分类
    1. 数据传送类:CPU、主存之间的数据传送
    2. 运算类:算术逻辑操作、移位操作
    3. 程序控制类:改变程序执行流
    4. 输入输出类:CPU、IO设备之间的数据传送

扩展操作码

  1. 最常见的变长操作码方法是拓展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作数,从而在满足需要的前提下,有效地缩短指令长度
  2. 在设计扩展操作码指令格式时,需要注意
    1. 👩‍💻 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同
    2. 各指令的操作码一定不能重复
  3. 优点:在指令字长有限的前提下仍保持比较丰富的指令种类
  4. 缺点:增加了指令译码和分析的难度,使控制器的设计复杂化

指令的寻址方式

指令寻址

  1. 指令寻址:确定下一条要执行的指令的存放地址,由程序计数器PC指明
  2. 顺序寻址
    1. 👩‍💻 (PC)+"1"→PC
    2. 此处的"1"理解为1个指令字长
    3. 每次取指令结束后,一定会PC+"1"
  3. 跳跃寻址:执行转移类指令导致的PC值改变

每一条指令的执行都分为"取指令"、"执行指令"两个阶段

数据寻址

寻址方式 有效地址 访存次数(指令执行期间)
隐含寻址 程序指定 0
立即寻址 A即是操作数 0
直接寻址 EA=A 1
一次间接寻址 EA=(A) 2
寄存器寻址 EA=Ri 0
寄存器间接一次寻址 EA=(Ri) 1
偏移寻址 转移指令 相对寻址 EA = (PC) + A 1
偏移寻址 多道程序 基址寻址 EA = (BR) + A 1
偏移寻址 循环程序&数组问题 变址寻址 EA = (IX) + A 1
堆栈寻址 入栈/出栈时EA的确定方式不同 硬堆栈不访存,软堆栈访存一次

取出当前指令后,PC会指向下一条指令,相对寻址是相当于下一条指令的偏移

相关推荐
2401_876964139 小时前
27考研余炳森概率论|喻老李良2027资料网课
windows·git·考研·svn·eclipse·github·概率论
2401_8769641311 小时前
27考研396经济类联考历年真题PDF
考研·pdf
2401_8769641311 小时前
27考研李艳芳网课|王谱2027数学讲义
人工智能·经验分享·深度学习·考研·算法·计算机视觉·概率论
如君愿11 小时前
考研复习 Day 41 | 密码学--第四章 分组密码(下)
考研·密码学·课后习题
05候补工程师16 小时前
【408高分笔记】数据结构冲刺:二叉树遍历性质、特殊形态与栈的跨界联动秒杀技巧
数据结构·经验分享·笔记·考研·算法
05候补工程师1 天前
【408考研·数据结构专题】二叉树、树与森林、线索树及哈夫曼树核心考点与秒杀技巧深度总结
数据结构·经验分享·笔记·考研·算法
如君愿1 天前
考研复习 Day 42 | 密码学--第五章 序列密码(上)
考研·密码学
05候补工程师3 天前
【考研数学·线性代数】核心考点与解题笔记:从线性方程组到二次型满分通关指南
经验分享·笔记·线性代数·考研·算法·矩阵
05候补工程师3 天前
【线性代数·全体系复习】核心考点与解题方法论总结(考研/期末冲刺硬核干货)
笔记·线性代数·考研·矩阵
如君愿4 天前
考研复习 Day 40 | 密码学--第四章 分组密码(中)
考研·密码学