计算机组成原理——指令系统
1月 06, 2019
1679
指令格式
指令操作码与地址码
- 指令字(简称指令)即表示一条指令的机器字。
- 指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成
- 操作码字段:指明了指令的操作性质及功能
- 地址码字段:指明了操作数的地址
- 不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。
操作码
组成操作码字段的位数一般取决于计算机指令系统的规模。
地址码
根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。
指令字长度与扩展方法
- 指令字长度:一个指令字中包含二进制代码的位数。
- 机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。
- 使用多字长指令,目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。其主要缺点是必须两次或多次访问内存以取出一整条指令,降低了 CPU 的运算速度,又占用了更多的存储空间。
- 指令操作码扩展方法
操作码不固定将增加指令译码和分析的难度,使控制器的设计复杂。
通常在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,则把它们的操作码的长度扩充到该地址字段。
指令和数据的寻址方式
重点掌握书上的例题
指令的寻址方式
- 顺序的寻址方式
指令在内存中式按地址顺序安排的,执行程序时,通常是一条指令接一条指令顺序进行。 - 跳跃的寻址方式
当程序要转移执行的顺序时,指令的寻址就采取跳跃寻址方式。跳跃,又称跳转,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。
数据的寻址方式
所谓操作数寻址方式,就是形成操作数的有效地址(EA)的方法。指令字中的地址码字段,通常是由形式地址和寻址方式特征位组成的,并不是操作数的有效地址。
- 隐含寻址
在指令中不明显的给出而是隐含着操作数的地址。 - 立即寻址
指令的地址字段指出的不是操作数的地址,而是操作数本身。
这种方式的特点是指令执行时间很短,不需要访问内存取数(操作数在地址码字段中)。 - 寄存器寻址
操作数放在 CPU 的通用寄存器中,操作数所在的寄存器编号存放在指令的地址字段 A 中 - 直接寻址
寄存器直接寻址方式:指令地址码字段直接给出所需操作数在通用寄存器中地址编号。
存储器直接寻址方式:一般简称直接寻址方式,其指令地址码字段直接给出存放在存储器中操作数的存储地址。 - 间接寻址
间接寻址的情况下,指令地址字段中的形式地址 A 不是操作数的真正地址,而是操作数地址的指示器,A 单元的内容是操作数的有效地址。
寄存器间接寻址方式:寄存器间接寻址时,需先访问寄存器,从寄存器读出操作数地址后,再访问存储器才能取得操作数。
存储器间接寻址方式:存储器间接寻址时,需访问两次存储器才能取得数据,第一次先从存储器读出操作数地址,第二次才能根据读出的操作数地址再取出真正的操作数。 - 相对寻址
所谓相对寻址方式,是指根据一个基准地址及其相对量来寻找操作数地址的方式
PC相对寻址方式,一般简称相对寻址方式,是指将程序计数器 PC的内容(即当前执行指令的地址)与地址码部分给出的位移量(Disp)通过加法器相加,所得之和作为操作数的有效地址的方式。 - 基址寻址
计算机设置一个寄存器,专门用来存放基准地址,该寄存器就是基址寄存器(RB)。RB 既可在 CPU 中专设,也可由指令指定某个通用寄存器担任。
基址寻址方式是将 CPU 中基址寄存器 RB 的内容加上指令格式中的形式地址 A 而形成操作数的有效地址。
优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。 - 变址寻址
变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把 CPU 中某个变址寄存器的内容与偏移量 D 相加来形成操作数有效地址。 - 堆栈寻址
操作数位于存储器中,操作数所在的存储器地址 EA 由堆栈指针寄存器 SP 隐含指出,通常用于堆栈指令。
指令的分类
- 数据传送指令
- 算术/逻辑运算指令
- 移位操作指令
- 程序控制指令
- 输入输出指令
- 字符串处理指令
- 堆栈操作指令
- 特权指令
- 其他指令(状态寄存器置位、复位指令、测试指令、暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。)