指令和指令系统概述
指令和指令系统概述
基本概念 指令:引起计算机执行某种操作的最小的功能单位。
指令系统:一台计算机的全部指令的集合。
CISC:复杂指令系统计算机的简称。
RISC:简化指令系统计算机的简称。
指令格式:一条指令由操作码和操作数地址码两部分组成。一般是如下格式: 操作码 操作数地址码
操作码:指明本条指令的操作功能。如算术运算、逻辑运算、存数、取数、转移等。每条指令分配一个确定的操作码。
操作数地址码:指出该条指令涉及的操作数的地址。
操作码:指明本条指令的操作功能。如算术运算、逻辑运算、存数、取数、转移等。每条指令分配一个确定的操作码。
操作数地址码:指出该条指令涉及的操作数的地址。
一、操作码的组织与编排 有三种组织方式: 1、定长的操作码:每条指令的的操作码均相同,即用固定长度的若干位表示操作码。 优点:简化了计算机的硬件设计,提高了指令译码和识别速度。
缺点:当指令长度较短时,操作数地址的位数就会严重不足。
因此定长的操作码适用于计算机字长较长的计算机指令系统。
2、变长的操作码:指令的的操作码长度不尽相同,将使用频率较高而地址码要求较多的的指令用较少位表示操作码;而对那些地址码位数要求较少的指令,用较多位表示操作码;对那些无操作数的指令,整个指令字均用作操作码。 如PDP-11计算机是16位的小型机,它的变长的操作码举例如下: 7位操作码: 0 1 1 1 X X X 地址码1 地址码2 8位操作码: 1 0 0 0 0 X X X 位移或常数 10位操作码: 1 0 0 0 0 1 0 1 X X 目标地址 16位操作码: 0 0 0 0 0 0 0 0 0 0 0 0 0 X X
优点:在比较短的指令字中,既能表示出比较多的指令条数,又能尽量满足操作数地址的要求。 缺点:增加了硬件设计的复杂性。 以上两种方案,操作码一般在指令字的最高位部分。
3、操作码与操作数地址有所交叉的方案特点:不同的指令操作码长度不同,而且与表示操作数地址码的字段有所交叉。
二、操作数地址的设计安排 1、无操作数指令:指令中不涉及操作数或使用约定的操作数。如停机指令、空操作指令、关中断及堆栈操作指令。
2、单操作数指令:指令中只涉及一个操作数或还使用另一约定的操作数。例如:寄存器内容加1、减1指令;与外设交换数据的指令,只在指令中指明外设地址,而把接受或送出的寄存器约定下来;另外一种情况是采用单一累加器的计算机中约定目的操作数和保存结果都使用唯一的累加器,指令中只表示一个源操作数即可。
3、双操作数指令:指令中要指出目的操作数和源操作数的地址,其中目的操作数地址还用于保存运算结果。
4、多操作数指令:如三操作数指令,指令中不仅要指出目的操作数和源操作数的地址,还要指出保存运算结果的去处。 三、关于指令的分类 下面是按指令的功能来分类 1、算术与逻辑运算指令:这是每台计算机必须要有的指令。这类指令不仅给出运算结果,还有结果的有关特征。 2、移位操作指令:包括算术移位(主要是右移)、逻辑移位、循环移位三种。
3、数据传送指令:实现通用寄存器之间、存储器之间、通用寄存器与存储器之间、通用寄存器与外设接口之间的数据传送。
4、转移指令、子程序调用与返回指令: 转移指令分为无条件转移指令和条件转移指令两种。二者相同之处是在指令中必须给出转移地址;不同之处是条件转移指令还必须在指令中给出转移的条件(程序状态字C、Z、V、S)。 子程序调用与返回指令是一种特殊的转移指令,二者要配合使用。子程序又分为用户自己编写的子程序和软件提供的子程序,对后者的访问又被称为访问系统程序(访管)指令、陷阱(TRAP)指令。
5、特权指令 用于操作系统或其他系统软件的指令,一般不提供给用户使用。
6、其他指令
四、关于操作数的来源、去处 1、CPU内部的通用寄存器:例如 MOVE R2,R1
2、外设接口中的寄存器:例如 IN PORT
3、内存储器的一个存储单元:例如 MOVE [R12],R1 load()