第六章 指令系统
6.1 指令系统概述
6.1.1 指令系统
物理的计算机只能够执行机器语言程序,组成程序的每一条语句称作一条机器指令,一种计算机能够执行的机器指令的集合就是这种计算机的指令系统。
6.1.2 机器指令格式
指令的一般格式
![c9f3d244b5c37421414b26ee0dafcf84.png](https://i-blog.csdnimg.cn/blog_migrate/bd02ce4cc044f4ce3dd46f3875f15b92.png)
操作码
操作码位数反映机器指令数目,内容反映机器做什么操作。
操作码类别:
- 长度固定,如 RISC 机器,指令规整,译码简单
- 长度可变,操作码分散在指令字的不同字段中,控制器设计复杂
地址码
地址码用来指定该指令操作数的地址、结果的地址,以及(可能有的)下一条指令的地址。
例如指令: MOV AX, [40],其中 “40” 指明了要操作的源操作数的地址,AX 指明了目的操作数的地址。
操作码扩展技术
通过操作码扩展(对应的地址码长度收缩)技术,能够有效地缩短指令的平均长度。
6.1.3 操作码设计举例
例题
假设一台计算机指令字长 16 位,操作码与地址码都为 4 位,请列出几种可能的操作码设计方法。
固定操作码
![a6a1003e4e84eb214e15bdef5043807f.png](https://i-blog.csdnimg.cn/blog_migrate/1aa2472c34a0bdfb3058cdcecb8458ec.jpeg)
扩展操作码
扩展方案非常多,下面给出两种扩展方式。
![e31e1c5e7428e7ba34e38cfa560db0f9.png](https://i-blog.csdnimg.cn/blog_migrate/34e1740a4462ad0b42dd541ba4f28af5.jpeg)
![690785b2653ea2e2167d8c5a90726c1b.png](https://i-blog.csdnimg.cn/blog_migrate/d6ebab290d82f068426b31e20f0f99e9.jpeg)
6.1.3 指令字长
- 指令字长取决于操作码长度、地址码长度和地址码个数。指令按照字长是否可变分为两种:
- 指令字长固定: 指令字长 = 存储字长
- 指令字长可变: 按字节的倍数变化
- 指令字长可变,导致控制电路复杂,多字长指令需要多次访存,应尽量把常用指令设计为单字长或短字长指令。
6.2 操作类型
6.2.1 数据传送类指令
数据传送类指令主要分为 “源地址” 和 “目的地址” 两个部分。
- 寄存器-寄存器 MOV AX, BX
- 寄存器-存储器 MOV [20], AX(STORE指令)
- 存储器-寄存器 MOV AX, [20]&#x