7.1机器指令
指令的一般格式是由操作码和地址码两部分组成。
操作码长度不固定定会增加指令译码和分析的难度,使控制器的设计复杂。
在设计操作码不固定的指令系统时,应尽量考虑安排指令使用频度,高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间。
地址码用来指出该指令的源操作数的地址,结果的地址以及下一条指令的地址。
指令字长取决于操作码的长度,操作数地址的长度和操作数地址的个数。
7.2操作数类型和操作类型
常见的操作数类型有地址,数字,字符,逻辑数据。
存放方式:可按字节,半字,字,双字访问,半字地址是2的整数倍,字地址是4的整数倍,双字地址是8的整数倍。
操作类型:数据传送,算术逻辑操作,移位,转移,输入输出,其他。
其中转移又分为无条件转移,条件转移,调用与返回,陷阱与陷阱指令。
7.3寻址方式
分为指令寻址和数据寻址两大类
7.3.1指令寻址
分为顺序寻址,跳跃寻址。
顺序寻址可通过程序计数器PC加1,自动形成下一条指令的地址。跳跃寻址则通过转移类指令实现。
7.3.2数据寻址
指令的地址码字段通常都不代表操作数的真实地址,故把它称为形式地址,记作A。操作数的真实地址称为有效地址,记作EA,它由寻地方式和形式地址共同来确定的。
①立即寻址:操作数本身设在指令字内,即形式地址A是操作数本身,又称立即数。优点即取即获,不必再访问存储器。缺A的位数限制了立即数范围。
②直接寻址:EA=A,寻找操作数比较简单。缺点A的位数限制了操作数的寻址范围。
③隐念寻址:操作数的地址隐念在操作码或某个寄存器中。在指令字中少了一个地址有利于缩短指令字长。
④间接寻址:EA=(A)扩大了操作数的寻址范围。便于编制程序。
⑤寄存器寻址:EA=Ri。指令字较短,节省了存储空间。操作数在由Ri所指的寄存器内。
⑥基址寻址:EA=A+(BR)。专用基址寄存器BR。扩大操作数的寻址范围,在多道程序中极为有用。
⑧变址导址:EA=A+(IX)。专用变址寄存器IX。指令所占的存储单元大大减小。
⑨相对寻址EA=(PC)+A。程序计数器PC即当前指令的地址。
⑩堆栈寻址。
7.4指令格式举例
因素:①操作类型。②数据类型。③指令格式。④寻址方式。⑤寄存器个数。
举例:①PDB-8②PDB-11③IBM360。
RISC技术:精简指令系统计算机。特征:用20%的简单指令的组合来实现不常用80%的哪些指令功能,比较简单……