【第四章:指令系统】

知识框架

No.0 : 引言

  1. 通过第二章学习运算器如何实现加减乘除和移位运算的操作的;;
  2. 通过第三章学习知道了我们的数据是如何存储在各种各样的存储器里面的;然后cpu又是如何从存储器当中取走数据的即交互操作;
  3. 第四章::CPU的控制器大致上有什么功能以及基本原理;;控制器的两个基本功能::
    1. 解析各种各样的指令
    2. 然后根据不同的指令去指挥其他部件来协调工作

在这里插入图片描述

本章指令大致过程:高级语言写的代码被编译之后,可以形成一系列对等的机器指令。

即程序在执行的过程就是CPU在执行一条条的机器指令。

:操作码(做什么)+地址码(对谁操作)

有的指令 不需要地址码比如结束指令;

那么本章探讨的问题就是:如何设计各种各样的指令?

No.1 :指令系统

一、指令格式

不同的指令可能地址码的数目是不一样的。

指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。即不同的计算机的指令集可能不同。

注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。

所以PC端的各种各样的软件是不能在手机上运行的,

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。

一条指令通常要包括操作码字段和地址码字段两部分:

一条指令可能包含0个、1个、2个、3个、4个地址码…
根据地址码数目不同,可以将指令分为零地址指令、一地址指令、二地址指令…

我们的地址码指明了主存单元的地址;那么地址码的位数有什么影响?
n位地址码的直接寻址范围=2^n;那么地址码的位数越长,表示我们的这些指令它的寻址能力,寻址范围越强。

在这里插入图片描述

1、根据地址码数目不同分类:

零地址指令:

在这里插入图片描述

一地址指令:

而执行第一种情况这样的指令需要三次访存:取指令(从主存取出来该条指令)+根据指令读地址码指令+计算结果写入对应地址

第二种情况:完成一条指令需要2次访存:取指→读A1

在这里插入图片描述

二、三、地址指令:

在这里插入图片描述

四地址指令:

在这里插入图片描述

2、根据指令总长度分类

指令字长:)一条指令的总长度(可能会变)
机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)

半字长指令、单Y长指令、双字长指令 —一指令长度是机器字长的多少倍

那么多少字长的指令就影响力取指令的时间:

指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取一条双字长指令需要两次访存

定长指含字结构:(指令系统虫所有指令的长度都相等
变长指令字结构:指令系统中各种指令的长度不等

3、根据操作码的长度不同分类

定长操作码:指令系统中所有指令的操作码长度都相同

:控制器的译码电路设计简单,但灵活性较低

:n位→2^n条指令

可变长操作码:指令系统中各指令的操作码长度可变

:控制器的译码电路设计复杂,但灵活性较高

那么操作码的位数:决定了这个系统当中最多可以支持多少条指令

定长指令字结构(指令总长度一样)可变长操作码(操作码长度可变)扩展操作码指令格式

4、根据操作类型分类

在这里插入图片描述

5、拓展操作码指令格式

在这里插入图片描述

首先我们会根据 地址码的个数和地址码的大小来确定 操作码的位数?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值