[最强期末复习]计算机组成原理:指令系统之指令概念解析

不知不觉就到期末啦,在计组的复习道路上越走越发艰难,最近都会发和计组或者机器学习、web有关的文章,重温和复习准备期末考试,也就临近期末才比较有自己的时间了,有任何问题评论区见啦🙌🙌🙌

在这里插入图片描述

指令系统概述

来几个基础问题:
❓什么是指令?
💭指令由操作码和地址码字段组成
指令的类型,他们之间的关系?
类型:微指令、宏指令、机器指令
微指令:是微程序级别的命令,属于硬件
宏指令:由若干条机器指令组成的软件指令,属于软件
机器指令:介于上述两者之间,通常别称为指令,每一条指令都可完成一个独立的算术运算或者逻辑运算操作

指令格式

在这里插入图片描述

操作码

🔸表征指令的操作特性和功能
🔸操作码所占的二进制位数决定了一台计算机所能允许的指令条数,所以说操作码这玩意儿的长度可以是固定的,也可以是变化的
例如说:操作码占了六位二进制码,那么这台计算机最多允许有:2^6=64条指令
🔰变化的操作码会增加指令译码和分析的难度,使得控制器设计的更加复杂。一般我们会采用扩展操作码的方式对操作码长度进行增加或者减少,这里就会扯到一种题型–>如何扩展操作码问题,这里在下面再分析
🔰一般用op代表操作码字段

地址码

💭💭💭地址码,也就是放地址的地方,就相当于“门牌号”,大家都知道大部分数据存放的地方就是我们的“主存”,也可能是一些存储器之类的,总之就是会有一个“门牌号”,一般来说我们去取地址都是去主存里面取的,这里又可以扯出一种题型:我要进行一个操作,那么我到底要访问多少次主存;还可以扯出一个问题:寻找地址,我不可能盲目寻找吧,总归会有一个寻找的范围,那么这个范围我怎么找?

在这里插入图片描述
🔸用来指出指令的参与操作的操作数的地址、结果地址、下一条指令的地址
🔸这里地址可以是主存地址、寄存器地址、甚至i/o设备的地址
🔸目前来说用的最多的就是二地址、一地址
🙌一般来说常用An(n为操作数位数)来表示

🔰其实说到到底需要怎么划分地址码的问题,其实最重要的就是你现在要进行什么操作的问题,比如说我现在想要进行乘法操作,那么我肯定至少需要两个数:也就是进行乘法运算的两个数,一般来说就是A1 A2,那么计算出来的结果是一个新的数,那么这个新的数你可以给他一个新的地址,也就是A3,如果说我现在还想再加一个下一条指令的地址,那就再加个A4喽,具体长这样:
在这里插入图片描述
这个就是我们说的“四地址指令”
在这里插入图片描述
写成符号表示就是:(A1) OP (A2) -> A3
(可以看到没有A4什么事)
❓那么访问了几次主存?
👍4次,取指令一次、取两个操作数2次,存放结果到A3一次,故访问了4次存储器
❓如果说指令字长为32位,操作码占了8位,4个地址字段各占6位,那么指令的直接寻址范围
👍简单,2^6=64
讲到A4这个地址,如果大家学到后面就会知道,每完成一条指令pc就会自动+1,形成下一条指令的地址,所以A4意义不太大,那怎么办?那就不要呗,这样就变成了三地址指令格式
在这里插入图片描述那么现在同样的我问上面两个问题,答案:
1、4次
2、256
但是如果说我现在变成了二地址指令:
在这里插入图片描述
那么情况就变啦,但是问题也不大,它可以完成:
(A1) OP (A2) -> A1,这里A1字段即表示操作数的地址,又表示存放本次结果的地址,访问几次?肯定还是4次嘛,都不会变的,但是访问的地址变了,变多少?2^12=4k
那么现在又来了,如果变成“一地址指令”呢?
在这里插入图片描述
这里就有人要问了,难道是要A1 A1相乘?答案是NO,因为有的操作数的地址是隐含在运算器ACC中的,所以指令字中只需要给出一个地址码,就够啦,符号表示:
ACC OP (A1) -> ACC得到的结果直接存放在ACC里就行了,这样其实和二地址很像,ACC既表示操作数的地址,又表示存放本次结果的地址,访问几次主存呢?答:2次,取地址和A1操作数地址即可
最后再来一个:零地址指令
也就是没有地址码的指令,比如说类似进栈、出栈、开机关机这种指令,就完全可以使用零地址指令,就像可以0、1表示的东西,领悟一下
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是X大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值