α. 指令系统概述
β. 指令格式
γ. 操作数类型
α 指令系统概述
现代冯·诺伊曼计算机结构框图是以存储器为中心,计算机的工作过程就是循环往复地取指令、分析指令、执行指令的过程。
一些概念
计算机指令:指示计算机硬件进行某种操作的命令。
机器指令(机器字):使用二进制来表示计算机指令,能被计算机硬件识别并执行的01代码串。
机器语言:机器指令编写程序的规范,是计算机硬件的系统语言。
机器语言程序:机器指令的有序集合,具有特定功能。
指令系统:一台计算机所有机器指令的集合。
汇编指令:机器指令的代码助记符,与机器指令几乎一一对应。
微指令:指在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,属于硬件层面。若干条微指令可以构成一个微程序,而一个微程序就对应了一条机器指令。
不同级别指令之间的关系
- 高级语言与汇编语言指令属于软件层面,而机器指令与微指令则属于硬件层面
- 一条高级语言被编译为多条机器指令
- 汇编指令与机器指令一一对应
- 一条机器指令则依赖于多条微指令的执行
指令所包含的信息
- 指令功能:要执行的操作,一般有运算、传送、移位、跳转等。
- 操作对象:要处理或参加运算的数据,称为源操作数。
- 操作的结果:存放运算或处理结果的数据,称为目的操作数(⚠️目的操作数也可以为源操作数)。
- 下一条指令地址:下一条指令在主存中的地址。
指令集体系架构(ISA):处理器所支持的指令集(汇编指令集及机器指令编码)及其操作数的相关信息(寄存器、存储器、I/O等)
- 作用:在系统软件设计者和处理器硬件设计者之间提供了一个抽象层
- 软件设计者:依据ISA知道如何编写机器语言程序来控制与使用处理器硬件
- 硬件设计者:依据ISA来设计微体系结构,并实现能执行机器语言的处理器硬件
- 内容
- ★可执行的指令集合,包括指令格式、指令类型、指令功能、指令编码等
- 指令可以接受的数据类型
- 操作数可以存放的寄存器组和结构
- 操作数所能存放的存储空间(存储器和I/O)大小、编址方式、大小端模式等
- 指令获取操作数的方式,即数据寻址方式
- 指令执行的控制方式,即指令寻址方式,包括程序计数器、条件码定义等
- 作用:在系统软件设计者和处理器硬件设计者之间提供了一个抽象层
β 指令格式
基本格式:操作码字段(OP)+地址码字段(A)
- 位二进制操作码最多表示 种指令
- 地址码用于寻找操作数或下一条指令地址
指令寻址方式
- 程序中的机器指令序列在主存中往往按顺序存放
- CPU使用程序计数器PC(Program Counter)来存储指令地址
- 下一条指令地址可以由 指出
- 转移类指令(即非顺序执行语句,如循环等)依旧读取 处指令,只是该指令是跳转指令
指令字长:一条机器指令的位数
- 机器字长:计算机一次能处理的二进制数据的位数
- 短格式指令:指令字长≤机器字长,节省空间;长格式指令:指令字长>机器字长,包含更多操作信息(⚠️两者可并存于一个指令系统)
- 定长指令系统:所有指令字长相等,一般都等于机器字长,结构简单;变长指令系统:指令字长不固定,通常取字节的整数倍,冗余状态少,结构灵活(单字长指令:指令字长=机器字;双字长指令:指令字长=机器字长*2)
地址码:用来寻找执行指令所需要的操作数(分为源和目的操作数)或者下条指令地址,地址码的含义取决于寻址方式。
三地址指令:OP|A1|A2|A3,(A1) OP (A2) →A3
二地址指令:OP|A1|A2,(A1) OP (A2) →A1
单地址指令:OP|A,(AC) OP (A) →AC(AC为隐含操作数) or OP(A)→A(单目运算)
零地址指令:OP,无需操作数如占位和延时而设置的空操作指令NOP、等待指令WAIT、停机指令HALT等,或是隐含操作数的单目运算符
⚠️上述四种指令可以并存于一个指令系统
γ 操作数类型
根据操作数的存放位置进行分类
- 立即数类型:操作数是常数,存放在指令的地址字段A上(指令存放在主存 [⚠️即为内存] 中)
- 寄存器类型:操作数存放在CPU的通用寄存器中,A为寄存器编号/地址
- 存储器类型:操作数存放在主存中,A为其地址信息(取决于寻址方式)
- I/O数据类型:操作数存放在I/O设备接口中,A为其端口地址Port
根据操作数的物理含义进行分类
数值数据:整数、浮点数、十进制数,带符号数/ 无符号数
指针/地址:指存储器地址,由访问存储器的指令计算出(⚠️是无符号整数)
位或位串数据:一般用于表示标志位、状态位、控制位等信息
字符或者字符串:一般用于表示文本信息,包括西文字符(ASCIl码)和中文字(内码)等
逻辑数据:用0/1表示真/假的逻辑值,通常用于条件转移指令中对条件码的检测
⚠️仅根据操作数的二进制代码则无法进行区分其具体的含义