本章通过高级语言与汇编代码之间的对应关系,以MIPS处理器的指令系统为例介绍了一个指令系统必须具备的基本功能,并就指令系统设计方面的有关内容进行了介绍。包括:指令的格式、操作数类型、数据在存储器中的存放方式、寻址方式、操作类型、硬件对过程调用的支持、CISC和RISC技术的比较、指令系统举例和分析设计等。具体总结如下:

(1)指令格式:

a)定长指令字:所有指令长度一致

b)变长指令字:指令长度有长有短

(2)操作类型:

a)数据传送:数据在寄存器、主存单元、栈顶等处进行传送

b)操作运算:各种算术运算、逻辑运算

c)字符串处理:字符串查找、扫描、转换等

d)I/O操作: 与外设接口进行数据/状态/命令信息的交换

e)程序流控制:条件转移、无条件转移、转子、返回等

f)系统控制:启动、停止、自愿访管、空操作等

(3)操作数类型(以Pentium处理器数据类型为例):

a)序数或指针:8位、16位、32位无符号整数表示

b)整数:16位、32位、64位三种补码表示的整数

c)实数:IEEE754浮点数格式

d)十进制数:18位十进制数,用80个二进位表示

e)位串:最长为232-1位

f)字符串:字节为单位的字符序列,一般用ASCII码表示

(4)操作数宽度:有多种,如:字节、16位、32位、64位等:

(5)数据存放顺序:

a)大端序:给定的数据所在地址处存放的是数据的最高有效字节(MSB)

b)小端序:给定的数据所在地址处存放的是数据的最低有效字节(LSB)

(6)寻址方式:

a)立即:地址码直接给出操作数本身

b)直接:地址码给出操作数所在的内存单元地址

c)间接:地址码给出操作数所在的内存单元地址所在的内存单元地址

d)寄存器:地址码给出操作数所在的寄存器编号

e)寄存器间接:地址码给出操作数所在单元的地址所在的寄存器编号

f)堆栈:操作数约定在堆栈中,总是从栈顶取数或存数

g)偏移寻址:用基地址+形式地址得到操作数所在的内存单元地址,包括三种:

变址寻址:地址码给出一个形式地址,并且隐含或明显地指定一个寄存 器作为变址寄存器,变址寄存器的内容(变址值)和形式地址相加,得到操作数的有效地址。

相对寻址:指令中的形式地址给出一个位移量D,而基准地址由程序计 数器PC提供。即:有效地址EA=(PC)+ D。

基址寻址:地址码给出一个形式地址,作为位移量,并且隐含或明显地指定一个寄存器作为基址寄存器,基址寄存器的内容和形式地址相加,得到操作数的有效地址。

(7)指令系统风格:决定了处理器的设计:

a)按地址码指定风格来分

①累加器型:一个操作数和结果都隐含在累加器中

②堆栈型:操作数和结果都隐含在堆栈中

③通用寄存器型:操作数明显地指定在哪个通用寄存器中

④装入/存储型:运算类指令的操作数只能在寄存器中,只有装入(Load)指令和存储(Store)指令才能访问内存

b)按指令系统的复杂度来分

①CISC:复杂指令系统计算机

②RISC:精简指令系统计算机