摘要:在计算机中,CPU都会定义出自己特定的指令系统,不过都遵循着统一的标准格式。指令的基本格式由操作码和地址码两部分组成。操作码指出该指令要完成什么操作,地址码则是提供原始的数据。指令系统中定义操作码的方式可以分为规整型(即定长编码)和非规整型(变长编码)两种,如下表所示。
在计算机中,CPU都会定义出自己特定的指令系统,不过都遵循着统一的标准格式。指令的基本格式由操作码和地址码两部分组成。操作码指出该指令要完成什么操作,地址码则是提供原始的数据。指令系统中定义操作码的方式可以分为规整型(即定长编码)和非规整型(变长编码)两种,如下表所示。
在指令系统中用来确定如何提供操作数或提供操作数地址的方式称为寻址方式(编址方式)。操作数可以存放在CPU中的寄存器(用寄存器名操作)、主存储器(指出存储单元地址)、堆栈(先进后出的存储机制,用栈顶指针SP来标出其当前位置)、外存储器或外围设备中。不过在运算时,数据均在主存储器中,操作数可以采用以下几种寻址方式:
(1)立即寻址:直接给出操作数,而非地址。
(2)直接寻址:直接给出操作数地址或所在寄存器号(寄存器寻址)。
(3)间接寻址:给出的是指向操作数地址的地址。
(4)变址寻址:给出的地址需与特定的地址值累加从而得出操作数地址。
通过采用不同的寻址方式,能够达到缩短指令长度、扩大寻址空间和提高编程灵活性等目的。
例如,某计算机字长为16位,运算器为16位,有16个16位通用寄存器,8种寻址方式,主存容量为64K个字。指令中地址码由寻址方式字段和寄存器字段组成,采用单字长指令。则要表示8种寻址方式需要3位,要表示16个通用寄存器则需要4位,所以地址码一共需要7位,而又采用单字长指令,字长为16位,因此,操作码的位数就只有16-7=9位。也就是说,可以表示的指令种类是条,即512条。因为每个寄存器是16位的,所以,可以表示的地址范围是
个字,即64K个字。
相关推荐:
软考备考资料免费领取
去领取