指令系统
- 格式:doc
- 大小:51.50 KB
- 文档页数:4
第四章指令系统[内容纲要]1 指令系统的基本概念指令:就是要计算机执行某种操作的命令。
计算机的指令有:微指令、机器指令和宏指令之分。
微指令:微程序级的命令,它属于硬件;宏指令:由若干条机器指令组成的软件指令,它属于软件;机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。
指令系统:一台计算机中所有机器指令的集合。
包括:复杂指令系统计算机(CISC)、精简指令系统计算机(RISC)。
[指令系统的性能要求]一个完善的指令系统应满足如下四方面的要求:完备性用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。
完备性:要求指令系统丰富、功能齐全、使用方便。
有效性利用该指令系统所编写的程序能够高效率的运行。
高效率主要表现在程序占据存储空间小、执行速度快。
一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。
规整性规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
对称性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。
兼容性系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。
但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。
[低级语言与硬件结构的关系]计算机语言具有高级语言和低级语言之分。
高级语言:其语句和用法与具体机器的指令系统无关。
低级语言:包括:机器语言(二进制语言)和汇编语言(符号语言)。
机器语言是面向机器的语言,和具体机器的指令系统密切相关。
机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。
高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。
但是高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。
为此,一些高级语言提供了与汇编语言之间的调用接口。
用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。
2 指令格式包括:操作码、地址码、指令字长度、指令助记符。
[操作码]指令字(简称指令)即表示一条指令的机器字。
指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。
[地址码]地址码字段又称为操作数字段,一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格三地址指令一地址指令零地址指令注意(1)零地址指令的指令字中只有操作码,而没有地址码。
(2)一地址指令常称为单操作数指令。
通常这种指令以运算器中累加寄存器AC中的数据为被操作数,指令字的地址码字段所指明的数为操作数,操作结果又放回累加寄存器AC中。
(AC) OP (A) -> ACOP表示操作性质;(AC)表示累加寄存器AC中的数;(A)表示内存中地址为A的存储单元中的数或运算器中地址为A的通用寄存器中的数;→表示把操作(运算)结果传送到指定的地方。
(3)二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操作的两个数在内存中或运算器中通用寄存器的地址,A1作存放操作结果的地址。
(A1) OP (A2) -> A1(4)三地址指令字中有三个操作数地址。
(A1) OP (A2) -> A3A1为被操作数地址,也称源操作数地址; A2为操作数地址,也称终点操作数地址; A3为存放结果的地址。
同样,A1,A2,A3以是内存中的单元地址,也可以是运算器中通用寄存器的地址。
二地址指令格式中,从操作数的物理位置来说,又可归结为SS型、RR型和RS型等三种类型。
[指令字长度]指令字长度:一个指令字中包含二进制代码的位数。
机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。
[指令助记符]由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。
为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。
这种缩写码叫指令助记符。
3 指令和数据的寻址方式包括:指令的寻址方式、操作数寻址方式[指令的寻址方式]操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。
在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。
当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。
寻址方式分为两类,既指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。
[指令的寻址方式]有两种:一种是顺序寻址方式,另一种是跳跃寻址方式。
[操作数寻址方式]:形成操作数的有效地址的方法,称为操作数的寻址方式。
其主要包括:1)隐含寻址特点是:在指令中不明显的给出而是隐含着操作数的地址。
2)立即寻址特点是:指令的地址字段指出的不是操作数的地址,而直接是操作数本身。
3)直接寻址特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。
4)间接寻址特点是:指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,D单元的内容才是操作数的有效地址。
5)寄存器寻址方式和寄存器间接寻址方式当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。
此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
6)相对寻址方式相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。
程序计数器的内容就是当前指令的地址。
7)基址寻址方式特点是:将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。
它的优点是可以扩大寻址能力。
8. 变址寻址方式变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。
但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。
9. 块寻址方式块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。
10. 段寻址方式这种寻址方式的实质还是基址寻址,方法上采用段寄存器数据自动左移若干位,然后与偏移量相加,进而形成所需的内存地址。
掌握各种寻址方式的有效地址E形成方法。
4 堆栈寻址方式包括:串联堆栈、存储器堆栈[串联堆栈]一些计算机的CPU中有一组专门的寄存器,有16个或更多,它们称为串联堆栈,其中每一个寄存器能保存一个字的数据。
数据的入栈或出栈遵循“后进先出”的原则。
[存储器堆栈]由程序员设指出一部分主存储器来作为堆栈,称为存储器堆栈。
这种堆栈有三个优点:⑴堆栈能够具有程序员要求的任意长度;⑵只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈;⑶可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。
注意到:存储器堆栈中,进栈时先存入数据,后修改堆栈指示器;出栈时,先修改堆栈指示器,然后取出数据。
5 典型指令包括:指令的分类、基本指令系统、精简指令系统(RISC)[指令的分类]主要包括:数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串处理指令以及特权指令和其他指令。
[基本指令系统]这些指令的功能具有普遍意义,几乎所有计算机的指令集中都能找到这些指令。
[精简指令系统RISC]RISC指令系统的最大特点是:⑴选区使用频率最高的一些简单指令,指令条数少;⑵指令长度固定,指令格式种类少;⑶只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
[本章小结]一台计算机中所有机器指令的集合,称为这台计算机的指令系统。
指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也影响到系统软件。
指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。
操作码字段表征指令的操作特性与功能,而地址码字段指示操作数的地址。
目前多采用二地址、单地址、零地址混合方式的指令格式。
指令字长度分为:单字长、半字长、双字长三种形式。
高档微型机中目前多采用32位长度的单字长形式。
形成指令地址的方式,称为指令寻址方式。
有顺序寻址和跳跃寻址两种,由指令计数器来跟踪。
形成操作数地址的方式,称为数据寻址方式。
操作数可放在专用寄存器、通用寄存器、内存和指令中。
数据寻址方式有隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址、基址寻址、变址寻址、块寻址、段寻址等多种。
按操作数的物理位置不同,有RR型和RS型。
前者比后者执行的速度快。
堆栈是一种特殊的数据寻址方式,采用“先进后出”原理。
按结构不同,分为寄存器堆栈和存储器堆栈。
不同机器有不同的指令系统。
一个较完善的指令系统应当包含数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、I/O类指令、字符串类指令、系统控制类指令。
RISC指令系统是CISC指令系统的改进,它的最大特点是:⑴指令条数少;⑵指令长度固定,指令格式和寻址种类少;⑶只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行。