一.指令系统的发展与性能要求
1.指令就是要计算机执行某种操作的命令。计算机的指令有微指令,机器指令和宏指令。
一台计算机中所有机器指令的集合称为指令系统或指令集。
2.大多数计算机的指令系统多达几百条,我们称这些计算机为复杂指令系统计算机,简称CISC.
特点: 数量多;指令长度不固定,寻址方式多;读写周期长。造硬件资源浪费,常使用的简单指令仅占指令总数的20%,但在程序中出现的频率却占80%。
3.精简指令系统计算机,简称RISC。(用在高端系统中。)
特点:指令数量少;指令长度固定指令格式和寻址方式少;只有少数指令读取存储器。
3.指令系统的性能要求
(1)完备性:采用硬件指令的目的是提高程序执行速度,便于用户编写程序。
(2)有效性:利用该指令系统所编写的程序能够高效率的运行。存储空间小,执行速度快。
(3)规整性:指令系统的对称性,云磁性指令格式和数据格式的一致性。对称性是指在指令系统中所有的寄存器和存储器单元都可同等对待。引起性是指一种操作性质的指令,可以支持各种数据类型。指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系。
(4)兼容性:向上兼容及低档机上运行的软件可以在高档机上运行。
二.指令格式
1.指令字表示一条指令的机器字。
指令格式是指令自用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成,操作码字段表真指令的操作特性与功能,而地址码字段通常指定参与操作的操作数的地址。例如:
2.指令字长:指令装包含的二进制代码的位数。
指令字:一条指令的机器字。
例如:一个指令系统只有八条指令,则有三位操作码就够了(2³=8)。如果有32条指令,就需要五位操作码。一般来说一个包含因为操作码最多能够表示二的n次方条指令。
3.地址码:
三地址指令:A₁表示地址:A₃表示目的操作数
二地址指令:A₁表示目的操作数:A₂表示源操作数
(1)零地址指令的指令字中只有操作码,而没有地址码。例如停机指令就不需要地址码,因为停机操作不需要操作数。
(2)一地址指令只有一个地址嘛,他指定一个操作数,另一个操作数地址是隐含的。
注意:地址码字段A指明的是操作数的地址,而不是操作数本身。
(3)二地址指令通常称为双操作数指令,它有两个地址码段A₁和A2分别指明参与操作数的两个数在内存中或运算器中通用寄存器的地址。
(4)三地址指令中A1,A2,A3通常指定为运算器中通用寄存器的地址,这是为了加快指令执行速度。
4.SS:内储器存储器型指令
RR:寄存器寄存器型指令
RS:寄存器-存储器型指令
速度:RR>RS>SS
三.指令字长度
1.机器字长是指计算机能直接处理的二进制数据的位数。(一次性能处理的二进制位数等于寄存器宽度。)
单字长指令:指令字长度等于机器字长度的指令。
半字长指令:指令字长度等于半个机器字长度的指令。
双字长指令:指令字长度等于两个机器字度的指令。
2.使用多字长指令的目的:
缺点:必须两次或三次访问内存以取出一整条指令,降低了CPU的运算速度,同时又占用了更多的存储空间。
优点:提供足够的地址位来解决访问内存任何单元的选址问题。
3.等长指令字:各种指令字长度相等的。他可以都是单字长指令或半字长指令。这种指令字结构简单,且指令字长度不变。
变长指令字结构:有的是单字长指令,有的是双字长指令。
优点:结构灵活,能充分利用指令长度。
缺点:指令的控制较复杂。
4.通常一个指令系统中指令的地址码个数不一定相同,为了确保指令字长度尽可能统一,可以采用扩展操作码技术,向地址码字段扩展操作码的长度。