计算机组成原理—指令系统

典型的指令格式

操作码 OP——指明操作性质的命令码,提供指令的操作控制信息。

操作对象——说明操作数存放的地址,有时则就是操作数本身。

微机中常使用变长操作码,在不增加指令字长度的情况下可表示更多的指令,但增加了译码和分析难度,需更多硬件支持



操作数个数的类型

零地址指令,也叫无操作数指令。例:空操作NOP、停机HLT

一地址指令 , 例:递增,移位,取反,INC AX,NOT BX

二地址指令, 例:[A1]+[A2]→[A1],[A2]为源地址,[A1]为目的地址。

三地址指令,例: [A1]+[A2]→[A3],其中[A1]、[A2]为源地址,[A3]为目的地址,操作后源地址内容不变,仅被拷贝。
在边界对齐的32位(4B)字长的计算机中,存放和访问存储器数据时,可按字、半字、字节或双字的方式进行。
“双字”地址为8的整数倍,最低3位:000
“字”地址为4的整数倍,最低两位:00
“半字”地址为2的整数倍,最低位:0

指令和数据的寻址方式

寻址方式分为 指令寻址方式 和 地址寻址方式。
在冯·诺依曼型结构的计算机中,内存中指令的寻址和数据的寻址是交替进行的。

指令的寻址方式

有两种;

顺序寻址方式

指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序进行。

指令的顺序寻址方式,必须使用程序计数器PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。

跳跃寻址方式

所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。

操作数基本寻址方式

隐含寻址

不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。

操作数在专用寄存器中

立即寻址

指令的地址字段指出的不是操作数的地址,而是操作数本身。
特点:指令中包含的操作数立即可用,节省了访问内存的时间。

操作数=A.

直接寻址

特点:在指令格式的地址字段中直接指出操作数在内存的地址A。
如果用D表示操作数,那么直接寻址的表达式为:D=(A).

EA=A.

间接寻址

相对于直接寻址而言,指令地址字段中的形式地址A不是操作数D的真正地址,而是操作数地址的指示器。
两次访存,影响指令执行速度。

EA=(A).

寄存器寻址

当操作数不在内存中,而是放在CPU的通用寄存器中,可采用寄存器寻址方式。
指令结构中的RR型指令,就是采用寄存器寻址方式的例子。

EA=R

寄存器间接寻址

与寄存器寻址的区别
指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。

EA=(R).

偏移寻址

直接寻址寄存器间接寻址的结合。

EA=A+(R);

常用的三种偏移寻址:

相对寻址:EA=A+(PC);引用的专用寄存器是程序计数器(PC).
基址寻址:EA=A+(R);引用的专用寄存器是基址寄存器.
变址寻址:EA=A+(R);引用的专用寄存器是变址寄存器.

段寻址方式

EA=A+(R);

堆栈寻址

EA=栈顶

你可能感兴趣的:(计算机组成原理—指令系统)