第4章指令系统 本章重点: 指令格式,功能及分类 指令和数据的寻址方式 堆栈及其实现。 RISC和RISC的特点。 4.1指令 1.概述 (1)指令系统 指令:指挥计算机执行某种操作的命令。 指令系统:某计算机所能执行的全部指令,称为该机的指令系统。 (2)指令系统的类型 ①复杂指令系统计算机CISC ②精简指令系统计算机RSC 指令 系统 (3)指令系统与软硬件的关系 软件 按指令系统功能构造硬件组织;硬件支持指令系统功能 的实现;在指令系统的基础上构造系统软件。 2.对指令系统性能的要求 指令系统的设计是计算机系统设计中的一个核心问题 (1)完备性 要求指令系统丰富,功能齐全,使用方便。 (2)有效性 指编写出的程序能高效率运行,占存储空间小,执行速度快。 (3)规整性 包括对称性、匀齐性、指令格式和数据格式的一致性。 ①对称性:指令系统中所有的寄存器和存储器单元都可同等对待,所有指 令都可使用各种寻址方式。 ②匀齐性:一种操作性质的指令可支持各种数据类型。 ③一致性:指令的长度和数据的长度有一定的关系,以便处理和存取,通 常为字节长度的整数倍 ④兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集, 而且“向上兼容
第 4 章 指令系统 本章重点: 指令格式,功能及分类。 指令和数据的寻址方式。 堆栈及其实现。 RISC 和 RISC 的特点。 4.1 指令 1. 概述: (1) 指令系统 指令:指挥计算机执行某种操作的命令。 指令系统:某计算机所能执行的全部指令,称为该机的指令系统。 (2) 指令系统的类型 ① 复杂指令系统计算机 CISC ② 精简指令系统计算机 RISC (3)指令系统与软硬件的关系 按指令系统功能构造硬件组织;硬件支持指令系统功能 的实现;在指令系统的基础上构造系统软件。 2. 对指令系统性能的要求 指令系统的设计是计算机系统设计中的一个核心问题。 (1) 完备性: 要求指令系统丰富,功能齐全,使用方便。 (2) 有效性: 指编写出的程序能高效率运行,占存储空间小,执行速度快。 (3)规整性: 包括对称性、匀齐性、指令格式和数据格式的一致性。 ①对称性:指令系统中所有的寄存器和存储器单元都可同等对待,所有指 令都可使用各种寻址方式。 ②匀齐性:一种操作性质的指令可支持各种数据类型。 ③一致性:指令的长度和数据的长度有一定的关系,以便处理和存取,通 常为字节长度的整数倍。 ④兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集, 而且“向上兼容
4.1.1指令的基本格式 操作码字段操作数地址字段 1.操作码OP—一用于指示指令的操作性质及功能。 n≥log2N或N≤2n 式中,N—一指令系统基本指令的条数。 nOP的二进制位数 2.地址码A——指示操作数或指令的地址 A的位数越多,访问内存的范围(寻址范围)越大。通常还包含寻址方式码。 3.指令字长一条指令含有的二进制位数 指令字长和机器字长通常是整倍数关系 4.决定指令格式的主要因素 操作种类、地址个数、寻址方式。 4.1.2地址码格式 三地址指令 指令意义:(A1)OP(A2)→A3 优点:适用于需保留操作数的场合。(大、中型机用) 缺点:指令码长 2.二地址指令 指令意义:(A1)OP(A2)→A1 特点:①指令码长度适中,使用方便。(中、小、微型机用) ②执行指令后,目的地址A1中的操作数被结果所取代。 3.一地址指令 指令意义:①对于单操作数指令,OP(A)→AC AC——累加器,例如LDA48,执行(48)→AC ②对于双操作数指令,(AC)OP(A)→AC。 A—显地址 AC—隐含地址,是隐含的寻址方式 优点:特别适用于只需一个地址的指令,指令字长短 缺点:对于两个操作数都来自内存的运算,速度慢
4.1.1 指令的基本格式 OP A 操作码字段 操作数地址字段 1. 操作码 OP——用于指示指令的操作性质及功能。 n≥log2N 或 N≤2n 式中,N——指令系统基本指令的条数。 n——OP 的二进制位数。 2. 地址码 A——指示操作数或指令的地址。 A 的位数越多,访问内存的范围(寻址范围)越大。通常还包含寻址方式码。 3. 指令字长——一条指令含有的二进制位数。 指令字长和机器字长通常是整倍数关系。 4. 决定指令格式的主要因素。 操作种类、地址个数、寻址方式。 4.1.2 地址码格式 1. 三地址指令 OP A1 A2 A3 指令意义:(A1) OP (A2) Æ A3 优点:适用于需保留操作数的场合。(大、中型机用) 缺点:指令码长。 2. 二地址指令 OP A1 A2 指令意义:(A1)OP(A2)ÆA1 特点:①指令码长度适中,使用方便。(中、小、微型机用) ②执行指令后,目的地址A1 中的操作数被结果所取代。 3. 一地址指令 OP A 指令意义:①对于单操作数指令,OP (A) Æ AC AC——累加器,例如 LDA 48,执行(48)Æ AC。 ②对于双操作数指令,(AC)OP(A)→AC 。 A——显地址 AC——隐含地址,是隐含的寻址方式 优点:特别适用于只需一个地址的指令,指令字长短。 缺点:对于两个操作数都来自内存的运算,速度慢
4.零地址指令 ①适用于不需操作数的指令。如空操作指令NOP,停机指令STOP等 ②在堆栈处理器中,若需操作数,则由堆栈指针SP指出 5.指令按操作数的来源分:RR型、SS型和RS型三种 RR型指令—两个操作数均来自寄存器的指令 SS型指令——两个操作数均来自内存的指令。 RS型指令—操作数分别来自寄存器和内存的指令。 小结: ①指令字长较短的微、小型机广泛使用二地址、一地址指令。 ②大中型机功能强,各种地址数目的指令都用。 41.3指令的操作码格式 每一条指令对应一个确定的操作吗。 1.固定长度操作码(规整型) 操作码位数固定,而且集中于第一个字段中。 优点:有利于简化译码器的设计。 例如:IBM370机的指令格式 指令格式1 OP 指令格式2: 指令格式3: 0 78 47 OP 2.可变长度操作码(非规整型) 操作码的位数和位置随不同指令而不同。但指令码长度固定不变。 例如PDP1l机:指令长度固定为16位。其中操作码的位数可有4、7、8、10 11、13和16位 【例】某机指令字长均16位,需设置二地址、一地址和零地址指令三种,每个操作数 的地址码占6位,用操作码扩展的方法设计出这三种指令的格式 【解】①二地址的指令格式 A A? 4位OP编码从0000~110是二地址指令的操作码,故最多可有24-1=15条二地址指令
4. 零地址指令 OP ① 适用于不需操作数的指令。如 空操作指令 NOP,停机指令 STOP 等。 ② 在堆栈处理器中,若需操作数,则由堆栈指针 SP 指出。 5. 指令按操作数的来源分:RR 型、SS 型和 RS 型三种。 RR 型指令——两个操作数均来自寄存器的指令 SS 型指令——两个操作数均来自内存的指令。 RS 型指令——操作数分别来自寄存器和内存的指令。 小结: ① 指令字长较短的微、小型机广泛使用二地址、一地址指令。 ② 大中型机功能强,各种地址数目的指令都用。 4.1.3 指令的操作码格式 每一条指令对应一个确定的操作吗。 1. 固定长度操作码(规整型) 操作码位数固定,而且集中于第一个字段中。 优点:有利于简化译码器的设计。 例如:IBM 370 机的指令格式 指令格式 1: 0 7 8 15 OP 指令格式 2: 0 7 8 31 OP 指令格式 3: 0 7 8 47 OP 2. 可变长度操作码(非规整型) 操作码的位数和位置随不同指令而不同。但指令码长度固定不变。 例如 PDP-11 机:指令长度固定为 16 位。其中操作码的位数可有 4、7、8、10、 11、13 和 16 位。 【例】某机指令字长均 16 位,需设置二地址、一地址和零地址指令三种,每个操作数 的地址码占 6 位,用操作码扩展的方法设计出这三种指令的格式。 【解】①二地址的指令格式 15 12 11 6 5 0 OP A1 A2 4 位OP编码从 0000~1110 是二地址指令的操作码, 故最多可有 24 -1=15 条二地址指令
说明:4位OP等于11示非二地址指令。 ②一地址的指令格式 l111 10位OP从1110000110.是一地址指令的操作码。故最多可有26-1=63条 一地址指令 说明:10位OP是全1表示零地址指令。 ③零地址指令 1111|111111 高10位等于全1,低6位可表示26=64条零地址指令。 操作码扩展的特点:操作码可变长。 优点:缩短指令的平均长度,减少程序总位数,增加指令字的操作信息。 缺点:控制器设计难度增大,需要更多的硬件支持(译码复杂等)。 414指令格式举例。 1.8位微型机的指令格式 有单字长、双字长和三字长指令 单字长指令 操作码 双字长指令: 操作码 操作数地址 字长指令: 操作码 操作数地址1 数地址2 每取出一条指令,(PC)△→PC△=1或2或3。 2.PDP-11系列机的指令格式(固定16位的指令长度) 151413121109876543210 指令类型 单操作数指令 操作码(10位) 目标地址(6位) 双操作数指令 操作码(4位) 源地址(6位) 目标地址(6位) 转移指令 操作码(8位) 位移量(8位) 操作码(7位) 寄存器号 子程序返回指令 操作码(13位) 条件码操作指令 操作码(11位) 特点:指令长度固定,非规整型操作码结构,典型的寄存器寻址方式
说明:4 位 OP 等于 1111 表示非二地址指令。 ②一地址的指令格式 15 12 11 6 5 0 1 1 1 1 A OP 10 位OP从 1111000000—1111111110 是一地址指令的操作码。故最多可有 26 -1=63 条 一地址指令。 说明:10 位 OP 是全 1 表示零地址指令。 ③零地址指令 15 12 11 6 5 0 1 1 1 1 1 1 1 1 1 1 OP 高 10 位等于全 1,低 6 位可表示 26 =64 条零地址指令。 操作码扩展的特点:操作码可变长。 优点:缩短指令的平均长度,减少程序总位数,增加指令字的操作信息。 缺点:控制器设计难度增大,需要更多的硬件支持(译码复杂等)。 4.1.4 指令格式举例。 1. 8 位微型机的指令格式 有单字长、双字长和三字长指令 单字长指令: 操作码 双字长指令: 操作码 操作数地址 三字长指令: 操作码 操作数地址 1 操作数地址 2 每取出一条指令,(PC)+ Æ PC =1 或 2 或 3。 2. PDP-11 系列机的指令格式(固定 16 位的指令长度) 指令位 指令类型 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 单操作数指令 操 作 码 (10 位) 目标地址(6 位) 双操作数指令 操作码(4 位) 源地址(6 位) 目标地址(6 位) 转移指令 操作码(8 位) 位移量(8 位) 转子指令 操作码(7 位) 寄存器号 子程序返回指令 操作码(13 位) 条件码操作指令 操作码(11 位) S N Z V C 特点:指令长度固定,非规整型操作码结构,典型的寄存器寻址方式
3. Pentium指令格式 非固定长度的指令格式(CISC结构特征) 0或1 0或1 0或1(字节数) 指令前缀 操作数长 地址长度 0,1,2,4 0或1 0,1,2,4(字节数) 操作码|Mod R/M 位移量 立即数 2位3位3位2位3位3位 (b)指令 图4.2 Pentium指令格式 (1)特点 ①变字长指令(1~12)字节 ②与Inte80486CPU兼容 ③给编译程序写作者以更多灵活的变成支持。 (2)指令前缀(可选) ①指令前缀一LOCK前缀和重复前缀 LOCK一用于多CPU环境中对共享存储器的排他性访问 重复前缀一用于字符串的重复操作一快速。 ②段取代前缀 指令使用不同的段寄存器时需指明。 ③长度取代前缀 a.实地址模式,默认两者长度均为16位。 32位 b.保护模式:D= 0-16位 (3)指令由五部分构成 ①操作码1-2字节 ②Mod-R/M:存储器操作数的寻址方式 ③SIM字段:与Mod-R∧M一起完整说明操作数来源; ④位移量字段; ⑤立即数字段。 【例4.1】指令格式如下所示,其中OP为操作码,试分析指令格式的特点。 源寄存器 目标寄存器 【解】①所示指令是单字长二地址指令。 ②操作码字段OP有7位,可以指定27=128条指令 ③源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令
3. Pentium 指令格式 非固定长度的指令格式(CISC 结构特征) 0 或 1 0 或 1 0 或 1 0 或 1 (字节数) 指令前缀 段前缀 操作数长度 地址长度 (a) 前 缀 1 或 2 0 或 1 0 或 1 0,1,2,4 0,1,2,4 (字节数) 操作码 Mod Reg 或 操作码 R / M 比例 S 变址 I 基址 B 位移量 立即数 2 位 3 位 3 位 2 位 3 位 3 位 (b) 指 令 图 4.2 Pentium 指令格式 (1) 特点 ①变字长指令(1~12)字节; ②与 Intel 80486 CPU 兼容; ③给编译程序写作者以更多灵活的变成支持。 (2) 指令前缀(可选) ①指令前缀—LOCK 前缀和重复前缀 LOCK—用于多 CPU 环境中对共享存储器的排他性访问。 重复前缀—用于字符串的重复操作—快速。 ②段取代前缀 指令使用不同的段寄存器时需指明。 ③长度取代前缀 a. 实地址模式,默认两者长度均为 16 位。 b. 保护模式: ⎩ ⎨ ⎧ − − = 位 位 160 321 D (3) 指令由五部分构成: ①操作码 1—2 字节; ②Mod-R/M:存储器操作数的寻址方式; ③SIM 字段:与 Mod-R/M 一起完整说明操作数来源; ④位移量字段; ⑤立即数字段。 【例 4.1】指令格式如下所示,其中 OP 为操作码,试分析指令格式的特点。 15 9 7 4 3 0 OP —— 源寄存器 目标寄存器 【解】① 所示指令是单字长二地址指令。 ② 操作码字段OP有 7 位,可以指定 27 =128 条指令。 ③ 源寄存器和目标寄存器都是通用寄存器(可分别指定 16 个),所以是 R-R 型指令