四、指令系统

指令: 计算机执行某种操作的命令
指令系统: 一台计算机中所有机器指令的集合
用指令系统的好处:用户不用直接和二进制代码接触,方便编程
此外:指令系统也是一台计算机的性能因素

在这里插入图片描述

4.1 指令格式

指令(机器指令),指计算机执行操作的最小单位,有0和1组成,是机器语言中的一条语句。

指令集:一台计算机的所有指令的集合,位于软件个硬件的交互界面上。不同计算机的指令集不一定兼容。

4.1.1指令的基本格式:

一条指令由操作码字段OP地址码字段A组成:

在这里插入图片描述

  • 定长指令字结构:
    所有指令长度相等,优点:控制简单、执行速度快

  • 边长指令字结构:
    长度随功能变化

地址码格式:

四地址指令:访存4次

(A1)OP(A2)>A3, A4

A1操作A2,存到A3。A4为下一条指令的地址。
如果指令长度32位,操作码OP占8位,地址各占6位,则寻址范围为26 =64
假设数据都在主存中,需要取1个操作数、2个地址、存放结果。因此需要访存4次, A4和本次无关

三地址指令:访存4次
去掉了A4

(A1)OP(A2)>A3

二地址指令:访存4次
去掉了A3,结果存到A1(目的操作数)中,A2为源操作数

(A1)OP(A2)>A1

一地址指令:访存3次

  • 可能单操作数:
OP(A1)->A1
  • 可能第另一操作数由累加器ACC提供(ACC在CPU中,不算访存)
 (ACC)OP(A1)->ACC


定长操作码格式:

n位操作码可表示2n条指令

扩展操作码指令格式:

2022考研计算机组成原理 P155页

假设指令长32位,一开始可以用1个操作码,3个地址码来实现三地址指令。
此时地址码范围有24=16种
但将1111作为扩展,三地址指令变为15种,也就是说如果系统读到1111 就知道接下来4位并非地址码,变为二地址指令。
以此类推,实现了扩展。

在这里插入图片描述
但也并非只能留出一位扩展,可以根据词频来分配。此处用到了哈夫曼编码的知识


错题记录:

  1. 在CPU执行指令过程中,程序计数器PC存放当前欲执行指令的地址,指令的地址码字段给出操作数的地址

  2. 不属于程序控制指令的是:中断隐指令(由硬件实现,不存在于指令系统)

  3. 应用程序不允许使用的指令是:特权指令(仅操作系统用)

  4. 设机器字长32位,一个容量为16MB的存储器,CPU按半字寻址,其寻址单元数是:223
    解释:16MB = 224*23 = 227位,半字为16位=24,除一下



4.2 指令的寻址方式

数据的存放:

在这里插入图片描述

边界对齐的概念:

在这里插入图片描述

4.2.1 指令寻址的方式:

  1. 顺序寻址:通过程序计数器PC, (PC) + 1 -> PC
  2. 跳跃寻址:通过转移类指令实现,可用来实现程序的条件或无条件状态转移。下一条指令任然通过PC给出

4.2.2 数据寻址的方式:


  1. 立即寻址:获取操作数方便,通常用于给寄存器赋初值
  2. 直接寻址:相对于立即寻址,缩短了指令长度
    指令字中的形式地址即为实际地址
  3. 间接寻址:扩大了寻址范围,便于编程,子程序返回
  4. 寄存器寻址:指令字较短,执行执行速度快
  5. 寄存器间接寻址:扩大了寻址范围

偏移寻址:

  1. 基址寻址:扩大了操作数的寻址范围,适用于多道程序设计
  2. 变址寻址:主要用于处理数组问题,适和编制循环程序
  3. 相对寻址:用于控制程序的执行顺序、转移等
    执行选对寻址时,PC已经+1,存着下一条指令的地址,因此指令提供的相对地址是以下一条指令的地址为基准
    相对寻址有利于程序浮动,有利于多道程序设计

在这里插入图片描述

  • 取操作数的速度:
    立即寻址最快,直接在指令中给出操作数
    寄存器寻址次之,访问一次寄存器
    直接寻址再次之,访问一次内存
    间接寻址最慢,访问内存两次以上
    寄存器间接寻址接近直接寻址

  • 指令系统中采用不同寻址方式的目的是:
    可缩短指令字长、扩大寻址空间、提高编程的灵活性。
    补充:这增加了译码的难度。程序控制是靠转移指令而非寻址方式实现的。

  • 基址寻址和变址寻址的区别:
    两种方式有效地址的形成都是寄存器内容 + 偏移地址
    基址:程序员操作的是偏移地址,基址寄存器中的内容由操作系统控制
    变址:程序员操作的是变址寄存器,偏移地址固定不变

  • 按字寻址的机器:
    程序计数器PC存下一条指令字的访存地址,位数取决于存储器的字数
    指令寄存器IR用于接收取得的指令,位数取决于指令字长


错题记录:

  1. 直接寻址的无条件转移指令的功能是将指令中的地址送入程序计数器PC

  2. 寄存器寻址可以缩短指令中某个地址段的位数
    解释:寄存器寻址中只需要指定寄存器编号

  3. 简化地址结构基本方法:基本采用隐地址

  4. 设指令地址码为A,变址寄存器为X,程序计数器PC,则变址间址寻址的操作数的有效地址EA为:((X) + A)
    解释:变址寻址:EA = (X) + A,再进行一次间址,EA = ((X) + A)



4.3 CISC和RISC

CISC:复杂(complex)指令系统计算机 (X86 笔记本、台式机

  • 增强指令的功能

RISC:精简(reduced)指令系统计算机 (ARM、MIPS 手机、平板

  • 减少指令种类和功能,复杂指令由多种简单指令组合实现

以打印单词为例:CISC会设计打印每个单词的指令,RISC会设置打印字母的指令

在这里插入图片描述

补充:

  1. RISC一定实现并行、流水线;CISC可以实现
  2. RISC的指令基本都被CISC指令包含
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值