当前位置:网站首页>指令系统——指令格式

指令系统——指令格式

2021-07-20 03:56:40 流楚丶格念


首先我们再回忆一下现代计算机的结构
在这里插入图片描述
搞错了,再来!

现代计算机的结构

在这里插入图片描述
这次就开搞控制器!

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

指令格式

指令的定义

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

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

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

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

指令格式

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

一条指令通常要包括操作码字段和地址码字段两部分(如下图所示):
在这里插入图片描述

操作码就是要表达用户要干什么?
比如:停机中断、求反求补、加减乘除……

地址码就是要说明对谁进行操作?
比如:不需要操作对象、需要一个操作对象、需要两个操作对象……


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

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

零地址指令

在这里插入图片描述

  1. 不需要操作数,如空操作、停机、关中断等指令
  2. 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶

一地址指令

在这里插入图片描述

  1. 只需要单操作数,如加1、减1、取反、求补等
    指令含义:OP(A1)→A1 ,完成一条指令需要3次访存:取指→ 读A1 →写A1
  2. 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)
    指令含义: (ACC)OP(A1)→ACC,完成一条指令需要2次访存:取指→ 读A1

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

二、三地址指令

在这里插入图片描述
常用于需要两个操作数的算术运算、逻辑运算相关指令

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

在这里插入图片描述
常用于需要两个操作数的算术运算、逻辑运算相关指令

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

四地址指令

在这里插入图片描述
指令含义:(A1)OP(A2)→A3,A4=下一条将要执行指令的地址

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

正常情况下:取指令之后 PC+1,指向下一条指令
四地址指令:执行指令后,将PC的值修改位 A4 所指地址

小杨同学表示:事真多!
在这里插入图片描述

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

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

分类

指令-按地址码数目分类

在这里插入图片描述

指令-按指令长度分类

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

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

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

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

指令-按操作码长度分类

  1. 定长操作码:指令系统中所有指令的操作码长度都相同(n位 → 2n条指令)
    ——控制器的译码电路设计简单,但灵活性较低
  2. 可变长操作码:指令系统中各指令的操作码长度可变
    ——控制器的译码电路设计复杂, 但灵活性较高
  3. 扩展操作码指令格式:定长指令字结构+可变长操作码

指令—按操作类型分类

  1. 数据传送(数据传送类:进行主存与CPU之间的数据传送)
    LOAD 作用:把存储器(源)中的数据放到寄存器(目的)中
    STORE 作用:把寄存器(源)中的数据放到存储器(目的)中

  2. 算术逻辑操作
    算术:加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算
    逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

  3. 移位操作
    算术移位、逻辑移位、循环移位(带进位和不带进位)

  4. 转移操作(程序控制类:改变程序执行的顺序)
    无条件转移 JMP
    条件转移 JZ:结果为0;JO:结果溢出;JC:结果有进位
    调用和返回 CALL和RETURN
    陷阱(Trap)与陷阱指令

  5. 输入输出操作(输入输出类(I/O):进行CPU和I/O设备之间的数据传送)
    CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

小结

在这里插入图片描述

版权声明
本文为[流楚丶格念]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15265965/2892196

随机推荐