🚀 【考纲要求】指令格式的基本概念;指令格式。
一、指令系统
通过指令系统,很好的将软硬件结合了起来;指令系统是计算机硬件能够识别和执行的指令(也叫机器指令)集合,包括算术运算、逻辑运算、 数据传输 、程序控制等基本操作,而软件的运行其实就是一条一条的机器指令在计算机硬件上跑。
2022年考点:ISA指令体系结构规定的内容
- 指令的格式、指令的寻址方式、操作类型,以及对应的操作数。
- 操作数的类型,操作数的寻址方式,可访问的寄存器的编号,个数,位数,存储空间的大小和编址方式。
- 指令执行过程的控制方式(程序计数器、条件码定义)。
1)机器指令的格式
机器指令格式如下,由操作码加地址码组成(考纲要求理解机器指令的格式)。
- 操作码: 指出这是一条什么指令,该条指令实现的功能是什么,甚至还可以指明地址码的寻址方式。
对于操作码来说,其又可以分为固定长度操作码和变长操作码。变长操作码就会导致指令字长不同,所谓的指令字长就是操作码位数+地址码位数*地址码个数,所以指令字长和机器字长没有关系,指令字长可以是机器字长(通常呢也将把指令字长等于机器字长的指令称为单字长指令),也可以是机器字长的一倍(通常也把指令字长等于两倍机器字长的指令称为双字长指令),也可以是机器字长的二分之一(指令字长等于二分之一机器字长的指令称为半字长指令),但是指令的字长一般是字节的整数倍。
- 地址码: 给出这次指令执行要操作的信息或者是存储该信息的地址又或者是寄存器的编号。
2)变长操作码指令格式(指令位数不变)
①四地址指令
该指令op为8位,四个地址码部分都为6位,所以最大的一个寻址范围是 2 6 = 64 2^6=64 26=64。该指令执行需要4次访存操作,读A1,读A2,操作,将结果送A3,A4是保存下一条指令的,所以为四次,两次读,一次写,还需要一次访存取出该四地址指令,对于A4的读,其实是算在下一条指令的读指令访存操作的。
②三地址指令
该指令op为8位,三个地址码部分都为8位,所以最大的一个寻址范围是 2 8 = 256 2^8=256 28=256。该指令执行需要4次访存操作,读A1,读A2,操作,将结果送A3;两次读,一次写,还需要一次访存取出该三地址指令。
③二地址指令
该指令op为8位,两个地址码部分都为12位,所以最大的一个寻址范围是 2 1 2 = 4 K 2^12=4K 212=4K。该指令执行需要4次访存操作,读A1,读A2,操作,将结果送A1或者A2;两次读,一次写,还需要一次访存取出该二地址指令。
④一地址指令
该指令op为8位,地址码部分为24位,所以最大的一个寻址范围是 2 2 4 = 16 M 2^24=16M 224=16M。该指令执行需要2次访存操作,读A1,操作,将结果送寄存器(如ACC);一次读,还需要一次访存取出该一地址指令。
⑤零地址指令
该指令op为32位,地址码部分为0位,该指令执行需要1次访存操作,取出该零地址指令。
2)固定操作码指令格式
对于固定长操作码来说,操作码为n位的话,其所能表示的最多的指令条数为 2 n 2^n 2n个,使用定长操作码的优点就是,可以简化计算机硬件设计,译码方便。
3)操作码的扩展
在设计扩展操作码指令格式的时候因考虑以下几点:
- 短码不可以是长码的前缀,
- 对于使用频率高的分配短码,对于使用频率低的分配长码。
4)指令操作类型
①数据传送类指令:push
、pop
、load
、store
等
②算数和逻辑运算类指令:加、减、乘、除、与、或、非等。
③移位操作
④转移操作:JMP
条件跳转、CALL
调用、PET
返回、TRAP
陷阱(一般中断隐指令才能使用,用户不能使用,但是也为用户设置了这类转移指令,如代码调试)、BRANCH
条件转移
⑤输入输出操作:用于和外部设备交换信息的指令(要是I/O设备和存储空间统一编址,可以直接使用访存指令,若不统一编址,则需要设计单独的指令)