计算机组成原理第四章-指令系统

指令系统概述

指令

计算机程序是由一系列机器指令组成
指令就是要计算机执行某种操作的命令,从层次结构来说,计算机指令有微指令,机器指令,宏指令
本章讨论的是机器指令,介于其他二者之间

指令系统

一台计算机中所有机器指令的集合
在这里插入图片描述

指令字长

指的是指令包含的二进制位数
与机器字长相比:单子长,双子长,半字长等长度指令
单子长:只有操作码,没有操作数
双字长:包含操作码合操作数
多字长指令
解决寻址较大存储空间的问题
取指多次访问主存,影响速度,占用空间大

指令的分类

指令基本结构操作码字段(OP)+地址码(指定参与操作的操作数)字段(A)

操作码

其中组成操作码字段的位数却决于计算机指令系统的规模,较大的指令系统需要更多的位数表示每条特定的指令。
一般来说一个包含 n n n 位的操作码最多能表示 2 n 条指令 2^{n} 条指令 2n条指令

地址码

根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令
在这里插入图片描述
1)地址指令的指令字只有操作码,而没有地址码。例如停机就不需要地址码,不需要操作数

2)地址指令只有一个地址码,它指定一个操作数,另一个错做书地址是隐含的(故单地址能处理两个数据
A C < − ( A C ) O P ( A ) AC<-(AC) OP (A) AC<(AC)OP(A)


3)地址指令通常称为双操作数指令。从操作数物理位置来说,可归结为三种类型

① 访问内存的指令格式,称为存储器存储器(SS(storage))型指令
参与操作的数都放在内存里,从内存某单元中取操作数,操作结果存放至另一内存单元中。因此需要多次访问内存
②访问寄存器的指令格式,称为寄存器寄存器(RR(regisiter))型指令
从寄存器中取操作数,把操作结果放到另一寄存器中,执行这类指令不需要访问内存,寄存器速度块
寄存器-存储器(RS)型指令
既要访问内存单元,又要访问寄存器


4)地址指令中有三个操作数地址A1,A2,A3
A 3 < − ( A 1 ) O P ( A 2 ) A_{3} <- ( A_{1}) OP (A_{2}) A3<(A1)OP(A2)


指令格式举例

在这里插入图片描述


扩展操作码

在这里插入图片描述
在这里插入图片描述


寻址方式及指令寻址

存储器既可以用来放数据,又可以存放指令。当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式
寻址方式分为两类:指令寻址方式数据寻址方式,在冯诺依曼结构中,两者交替执行,在哈弗结构中,两者独立进行

指令寻址

指令寻址方式顺序寻址跳跃寻址

顺序寻址

指令的程序序列在主存顺序存放,逐条取出并逐条执行。
CPU设置程序计数器(PC)对指令顺序号进行计数,PC开始时存放程序首地址,每执行一条指令,PC+1,取出下一条指令地址,直到程序结束
在这里插入图片描述

跳跃寻址

当程序转移执行的顺序时,指令的寻址采用跳跃寻址方式,跳跃指的是下条指令的地址码不是由程序计数器给出,而是由本条指令给出
在这里插入图片描述

操作数寻址

定义:对于内存寻址,既可以在指令中直接给出操作数的实际访存地址(有效地址),也可以在指令的地址字段给出所谓的形式地址形成操作数的有效地址方法称为操作数寻址方法
一般来说,指令给出的地址码,并不是操作数的有效地址。形式地址A,也称偏移量
寻址过程就是把操作数的形式地址变换为操作数的有效地址过程

立即数寻址

在这里插入图片描述
指令的地址字段指出的是操作数本身,不是操作数地址,便于程序设计(变量赋初值),包含的操作数立即可用。
优点:便于程序设计
缺点:数据大小受字段位数限制

寄存器寻址

在这里插入图片描述
操作数不在主存,而在CPU的通用寄存器中,此时指令给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号
优点:不会成为数据大小制约因素,地址字段位数与计算机通用寄存器数量相关
缺点:比主存小,只是速度快,不能访问主存

直接寻址

在这里插入图片描述
在指令格式的地址字段直接指出操作数在内存的地址A,操作数地址直接给出不需要经过某种变换
特点:执行速度慢,范围受限

间接寻址

地址码字段给出的是操作数地址的地址,用速率换空间,在主存进行
在这里插入图片描述
特点:
1、访问主存两次,速度慢
2、解决寻址范围受限问题

寄存器间接寻址

地址码字段给出的是寄存器编号,读字段给的有效内容获得有效地址,再访问主存获得操作数
在这里插入图片描述
特点:
1、解决直接寻址方式下地址字段位数限制访存范围大小问题
2、获得数据只需访问主存一次
3、速度快,范围增大

相对寻址

隐含引用的专用寄存器是程序计时器PC,是当前PC的内容加上指令地址字段中A的值。节省指令中地址位数
在这里插入图片描述
特点:
1、节省指令中地址位数,便于程序在内存块中成块移动
2、注意PC的改变对E的影响,本例中E=200+2000+2(16位字长,PC取指后+2)

在这里插入图片描述

基址寻址

指定一个基址寄存器B,与本指令地址无关
在这里插入图片描述
特点:
1、使用基址寄存器可以访问更大的主存空间,以它为基础,加上偏移量可以访问更大的存储空间
2、对程序而言,基址值设定后不变,故要访问不同数据需修改D

变址寻址

指定一个变址寄存器X,与本指令地址无关,内容可随要求改变。
在这里插入图片描述
特点:
1、不改变指令即可改变数据的有效地址,可在循环中使用

寻址方式对比

在这里插入图片描述


指令格式设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


MIPS指令

特点
在这里插入图片描述

三种指令格式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

MIPS指令集中,不单设寻址方式说明字段
在这里插入图片描述

寻址方式

立即数寻址

在这里插入图片描述

寄存器寻址

在这里插入图片描述

基址寻址

在这里插入图片描述

相对寻址

在这里插入图片描述

伪直接寻址

在这里插入图片描述

MIPS指令详解


类型
3寄存器R型指令
在这里插入图片描述
两寄存器R型指令
在这里插入图片描述
1寄存器R型指令
在这里插入图片描述


在这里插入图片描述
面向运算的I型指令

在这里插入图片描述
面向访存的I型指令

从主存取操作数把结果写入主存
在这里插入图片描述
面向数位设置的I型指令
将立即数字段的值左移16位,结果送到RT中保存

在这里插入图片描述

面向条件转移的I型指令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值