开发者社区> 流楚丶格念> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

指令系统——指令格式

简介: 指令系统——指令格式
+关注继续查看

现代计算机的结构


image


这次就开搞控制器!


学会指令系统就可以更精进之前搞的典型过程了:https://yangyongli.blog.csdn.net/article/details/116792581


指令格式


指令的定义


指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。


一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。


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


例如:x86 架构、ARM架构之间不能互相执行对方架构系统的指令。


指令格式


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


一条指令通常要包括操作码字段和地址码字段两部分(如下图所示):


image


操作码就是要表达用户要干什么?


比如:停机中断、求反求补、加减乘除……


地址码就是要说明对谁进行操作?


比如:不需要操作对象、需要一个操作对象、需要两个操作对象……


其中 一条指令可能包含 0个、1个、2个、3个、4个 地址码…


根据地址码数目不同,可以将指令分为 零地址指令、一地址指令、二地址指令…


零地址指令


image


  1. 不需要操作数,如空操作、停机、关中断等指令


  1. 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶


一地址指令



image


  1. 只需要单操作数,如加1、减1、取反、求补等


指令含义:OP(A1)→A1 ,完成一条指令需要3次访存:取指→ 读A1 →写A1


  1. 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)


指令含义: (ACC)OP(A1)→ACC,完成一条指令需要2次访存:取指→ 读A1


注:A1 指某个主存地址, (A1)表示 A1 所指向的地址中的内容


二、三地址指令


image


常用于需要两个操作数的算术运算、逻辑运算相关指令


指令含义:(A1)OP(A2)→A1


完成一条指令需要访存4次,取指→读A1→读A2→写A1


image


常用于需要两个操作数的算术运算、逻辑运算相关指令


指令含义:(A1)OP(A2)→A3


完成一条指令需要访存4次,取指→ 读A1→读A2 →写A3


四地址指令


image


指令含义:(A1)OP(A2)→A3,A4=下一条将要执行指令的地址


完成一条指令需要访存4次,取指 →读A1 →读A2 →写A3


正常情况下:取指令之后 PC+1,指向下一条指令


四地址指令:执行指令后,将PC的值修改位 A4 所指地址


地址码的位数有什么影响?


n位地址码的直接寻址范围=2n,若指令总长度固定不变,则地址码数量越多,寻址能力越差


分类


指令-按地址码数目分类


image


指令-按指令长度分类


可以分为:半字长指令、单字长指令、双字长指令 ——指令长度是机器字长的多少倍


指令字长:一条指令的总长度(可能会变)


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


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


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


定长指令字结构:指令系统中所有指令的长度都相等


变长指令字结构:指令系统中各种指令的长度不等


指令-按操作码长度分类


  1. 定长操作码:指令系统中所有指令的操作码长度都相同(n位 → 2n条指令)

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


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

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


  1. 扩展操作码指令格式:定长指令字结构+可变长操作码


指令—按操作类型分类


  1. 数据传送(数据传送类:进行主存与CPU之间的数据传送)


LOAD 作用:把存储器(源)中的数据放到寄存器(目的)中


STORE 作用:把寄存器(源)中的数据放到存储器(目的)中


  1. 算术逻辑操作


算术:加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算


逻辑:与、或、非、异或、位操作、位测试、位清除、位求反


  1. 移位操作


算术移位、逻辑移位、循环移位(带进位和不带进位)


  1. 转移操作(程序控制类:改变程序执行的顺序)


无条件转移 JMP


条件转移 JZ:结果为0;JO:结果溢出;JC:结果有进位


调用和返回 CALL和RETURN


陷阱(Trap)与陷阱指令


  1. 输入输出操作(输入输出类(I/O):进行CPU和I/O设备之间的数据传送)

CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)


小结


image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
指令系统——数据寻址
指令系统——数据寻址
10 0
指令系统——CISC和RISC
指令系统——CISC和RISC
14 0
Vue回炉重造之搭建考试答卷系统
答题过程中,防止用户中途退出或者其他不可抗力因素阻碍答题,在每次选择都要请求下接口(接口状态为未交卷,只是保存用户的答题进度)。 选择答题区与答题卡必须同步,另外右侧的进度条也是同步的。
25 0
推荐系统
推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。 1.协同过滤 具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。 往往需要一个物品评分矩阵R,元素ri,jr_{i,j}表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如: 表1.1 一个
1506 0
千里之堤,毁于蚁穴----考试系统
<p><span style="font-family:SimSun"> <span style="font-size:18px">   千里之堤,毁于蚁穴,做项目的过程中可能会涉及到成千上万行的代码,在开发的过程中,一定要注意一些细节上的问题,这不是一篇技术性很高的文章,主要是思想。<br></span></span></p> <p><span style="font-family:S
1387 0
获取系统版本号
<p style="margin-top:0px; margin-bottom:0px; font-size:14px; font-family:Menlo">    versionLabel.text = [NSString stringWithFormat:@"<span style="font-family:'Heiti SC Light'">版本号:</span>v%@",[[NS
792 0
系统锁屏
frameworks/policies/base/phone/com/android/internal/policy/impl LockScreen.java LockScreenOut.java
601 0
凤巢系统
引用:http://baike.baidu.com/view/2385746.htm 2009年4月20日,全球最大的中文搜索引擎百度正式推出搜索推广专业版,即此前受到业界广泛关注的“凤巢”推广系统。
1164 0
btrfs系统
http://zh.wikipedia.org/wiki/Btrfs   Ext4 ReiserFS Btrfs 等七种文件系统性能比拼 http://inezha.
674 0
+关注
流楚丶格念
csdn平台优质创作者,51cto TOP博主,360图书馆科技博主,燕山大学目前大三在读,日拱一卒,功不唐捐,加油!!!
1010
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载