指令的分类
数据传送指令
I/O指令
算数逻辑运算指令
程序控制指令
指令格式
指令字长
定长指令格式:便于控制
变长指令格式:合理利用存储空间
复合型操作码:操作码分为几部分,每部分表示一种操作。
操作码结构
定长操作码:操作码的位置,位数固定
扩展操作码:操作码的位置,位数不固定,根据需要变化(设置扩展标志)
地址码结构
指令提供地址的方式
显式地址方式:指令中明显指明地址
隐式地址方式:地址隐含约定,不出现在指令中
地址结构的简化
四地址结构指令;三地址结构指令;二地址结构指令;一地址结构指令;0地址结构指令
寻址方式
寻址方式是指寻找指令或操作数有效地址的方式,即确定本条指令的数据地址及下一条待执行指令的地址的方法。寻址方式分为指令寻址和数据寻址两大类。
指令寻址
顺序寻址
顺序寻址可通过程序计数器(PC)加1 (1个指令字长),自动形成下一条指令的地址。
跳跃寻址
跳跃寻址通过转移类指令实现。所谓跳跃,是指下条指令的地址码不由程序计数器给出, 而由本条指令给出下条指令地址的计算方式。
数据寻址
数据寻址是指如何在指令中表示一个操作数的地址,如何用这种表示得到操作数或怎样计算出操作数的地址。
隐含寻址
这种类型的指令不明显地给出操作数的地址,而在指令中隐含操作数的地址。例如,单地址的指令格式就不明显地在地址字段中指出第二操作数的地址,而规定累加器(ACC)作为第二操作数地址,指令格式明显指出的仅是第一操作
数的地址。
立即寻址
这种类型的指令的地址字段指出的不是操作数的地址,而是操作数本身,又称立即数。
直接寻址
指令字中的形式地址A是操作数的真实地址EA,即EA = A。
间接寻址
间接寻址是相对于直接寻址而言的,指令的地址字段给出的形式地址不是操作数的真正地址, 而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,
寄存器寻址
寄存器寻址是指在指令字中直接给出操作数所在的寄存器编号,即EA = R
寄存器间接寻址
寄存器间接寻址是指在寄存器中给出的不是一个操作数,而是操作数所在主存单元的地 址,
相对寻址
相对寻址是把程序计数器(PC)的内容加上指令格式中的形式地址A而形成操作数的有效地址, 即EA= (PC) + A
基址寻址
基址寻址是指将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(BR)+A
基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定,主要用于解决程序逻辑 空间与存储器物理空间的无关性。
变址寻址
变址寻址是指有效地让EA等于指令字中的形式地址A与变址寄存器IX的内容之和,即EA = (IX)+ A,其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
变址寄存器是面向用户的,在程序执行过程中,变址寄 存器的内容可由用户改变(作为偏移量),形式地址A不变 (作为基地址)。
CPU的指令集
CISC
早期的计算机部件比较昂贵,主频低,运算速度慢。为了提高运算速度,不得不将越来越多的复杂指令加入到指令系统中,以提高计算机的处理效率,这就逐步形成复杂指令集计算机体系。
RISC
是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。