- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
译码开始
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
4:16译码器 : 译码器
…
15条三地址指令 15条三地址指令
…
14条二地址指令 14条二地址指令
…
31条一地址指令 31条一地址指令
…
16条零地址指令 16条零地址指令
图4.1 指令译码逻辑图
•
注意事项: 注意事项: • 短操作码不能与长操作码 的前面代码部分相同; 的前面代码部分相同; • 各指令的操作码一定不能重复,而且各类指令的 各指令的操作码一定不能重复, 格式安排应统一规整. 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 1(P151.题2):假设某计算机指令长度为20位 假设某计算机指令长度为20 单操作数、无操作数三类指令形式, 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示, 规定用6位表示,问: 若操作码字段固定为8 现设计出m条双操作数指令,n 若操作码字段固定为8位,现设计出m条双操作数指令,n 固定为 条无操作数指令,在此情况下, 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 多少条单操作数指令? 解 : 2 8 - m - n条
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 机器字长: 位数,通常与主存单元的位数一致. 位数,通常与主存单元的位数一致.
例:设某机器的指令字长为16位,包括基本操作码4位 设某机器的指令字长为16位 包括基本操作码4 16 和三个地址字段,每个地址字段长4 其格式为: 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 A1 OP 8 7 A2 4 3 A3 0
采用扩展操作码的方式,设计: 采用扩展操作码的方式,设计: (1)15条三地址指令,15条两地址指令,15条 (1)15条三地址指令,15条两地址指令,15条 条三地址指令,15条两地址指令,15 一地址指令,16条零地址指令. ,16条零地址指令 一地址指令,16条零地址指令. (2)15条三地址指令,14条两地址指令,31条 (2)15条三地址指令,14条两地址指令,31条 条三地址指令,14条两地址指令,31 一地址指令,16条零地址指令. ,16条零地址指令 一地址指令,16条零地址指令.
0000 1110
XXXX XXXX 0000 1 1 01 1110 1110 1110 1111 1111 1111 1111
YYYY YYYY YYYY YYYY 0000 0001 1111 0000 1110 1111 1111
ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ 0000 1111
(2) 指令的长度
• 单字长指令:指令字长等于机器字长. 单字长指令:指令字长等于机器字长.
• 双字长指令: 指令字长等于两个机器字长的指 双字长指令: 令. 例如:IBM 370的指令长度有16位 半字) 32位 单字) 的指令长度有16 例如:IBM 370的指令长度有16位(半字)、32位(单字) 48位 一个半字). 及 48位(一个半字).
学习指令系统的目的: 学习指令系统的目的:对于了解计算机的工作过 程和控制方法有重要的作用。 程和控制方法有重要的作用。 主要学习内容: 主要学习内容: 4.1 指令格式 4.2 指令和数据的寻址方式 4.3 CISC和RISC CISC和
4.1 指令格式
1.指令格式 1.指令格式 操作码 地址码
•
地址个数对程序长度和指令长度的影响 同一个问题,用地址数越多的指令编写的程序越短, 同一个问题,用地址数越多的指令编写的程序越短, 但指令长度越长. 但指令长度越长.
例:分别用三地址、二地址、一地址指令编制计算 分别用三地址、二地址、 x=(a×b+c-d)/(e+f)的程序 的程序。 x=(a×b+c-d)/(e+f)的程序。 为操作数,A 解:假设a、b、c…为操作数,A、B、C…为操作数地址 假设a 为操作数,A、 为操作数地址 (1)三地址指令程序 (1)三地址指令程序
• 操作码(Operation code):指明该指令执行 操作码(Operation code):指明该指令执行 什么性质的操作, 什么性质的操作,不同的指令有不同的操作 其位数反映了机器操作种类, 码.其位数反映了机器操作种类,即机器允许 的指令条数. 的指令条数. • 地址码:指明操作数所在的地址(Source 地址码:指明操作数所在的地址(Source reference),结果存放的地址 结果存放的地址(Result operand reference),结果存放的地址(Result reference)以及下一条指令的地址 operand reference)以及下一条指令的地址 (Next instruction reference).
• 等长指令字结构:一个指令系统中,各种指令字 等长指令字结构:一个指令系统中, 长度是相等的.RISC采用等长指令字结构. .RISC采用等长指令字结构 长度是相等的.RISC采用等长指令字结构. 优点:指令字结构简单,长度固定,指令译码时间 优点:指令字结构简单,长度固定, 有利于硬件控制系统的设计,执行速度快; 短,有利于硬件控制系统的设计,执行速度快; 缺点:指令平均长度长、容易出现冗余码点, 缺点:指令平均长度长、容易出现冗余码点,指令 不易扩展等. 不易扩展等. • 变长指令字结构:一个指令系统中,各种指令字 变长指令字结构:一个指令系统中, 长度随功能而异.CISC采用变长指令字结构. .CISC采用变长指令字结构 长度随功能而异.CISC采用变长指令字结构. 优点:使用灵活,充分利用指令的每一位, 优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存, 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同, 而导致不同指令的执行时间不同,硬件控制系统 复杂. 复杂.
操作码 A1 A2 A3 下条指令地址(A4) 下条指令地址(A4)
指令功能: 指令功能: (A1) OP (A2)
A4提供下一条指令的地址 A3 A4提供下一条指令的地址
(2) 三地址双操作数指令
操作码 A1 A2 A3
指令功能: 指令功能: (A1) OP (A2) 下一条指令的地址由PC PC提供 下一条指令的地址由PC提供 (3) 二地址双操作数指令
第四章 指令系统
指令(instruction): 计算机硬件能识别并直接 指令(instruction): 执行的操作命令(如加、 传送、转移等), 执行的操作命令(如加、减、传送、转移等), 即机器指令(Machine Instruction)。 即机器指令(Machine Instruction)。 指令系统(指令集: sets):一台计算机 指令系统(指令集:instruction sets):一台计算机 能执行的全部指令的集合。 能执行的全部指令的集合。 指令系统反映了计算机具有的基本功能, 指令系统反映了计算机具有的基本功能,是计 算机系统硬件、软件的主要分界面。 算机系统硬件、软件的主要分界面。 指令系统既是计算机硬件设计的主要依据,又是 指令系统既是计算机硬件设计的主要依据 又是 计算机软件设计的基础,所以 一台计算机指令系 计算机软件设计的基础 所以,一台计算机指令系 所以 统的优劣直接影响着计算机系统的性能. 统的优劣直接影响着计算机系统的性能
2.地址码结构 2.地址码结构
设计指令的地址码格式时需解决: 设计指令的地址码格式时需解决: • 一条指令中指明几个地址(与指令所涉及的操作数个 一条指令中指明几个地址 与指令所涉及的操作数个 数有关); 数有关 ; • 如何给出地址(显地址--地址信息明显地给出 隐地址显地址--地址信息明显地给出; 如何给出地址 显地址--地址信息明显地给出;隐地址地址信息依据某种事先约定, 用隐含的式给出). -地址信息依据某种事先约定, 用隐含的式给出). • 地址码应选多长(与存储单元容量 与存储单元容量、 地址码应选多长 与存储单元容量、编址单位大小和 寻址方式有关). 寻址方式有关 以双操作数运算类指令(如加法指令)为例: 以双操作数运算类指令(如加法指令)为例: (1) 四地址双操作数指令
定长操作码:所有指令的操作码长度一致,均为n (1) 定长操作码:所有指令的操作码长度一致,均为n 位操作码, 集中位于指令字的固定字段中, 位操作码, 集中位于指令字的固定字段中,最多能够 表示2 条指令。 表示2n条指令。 特点:简单规整, 特点:简单规整,由于定长的操作码在指令字中所 占的位数、位置固定,所以指令译码简单, 占的位数、位置固定,所以指令译码简单,有利于简 化硬件设计。 化硬件设计。
操作码 A1 A2
A3
指令功能: 指令功能: (A1) OP (A2) 下一条指令的地址由PC提供 下一条指令的地址由PC提供 PC
A1
(4) 一地址双操作数指令 操作码 A1 AC
指令功能: 指令功能: (A1) OP (AC) AC为累加寄存器 AC为累加寄存器
下一条指令的地址由PC提供 下一条指令的地址由PC提供 PC (5) 零地址双操作数指令 操作码 指令功能: 指令功能:堆栈栈顶和次栈顶中的内容从堆栈 弹出后,进行某种运算,结果压入堆栈. 弹出后,进行某种运算,结果压入堆栈.
(AC) ×(B) (AC)+(C)
(AC)D; (AC)-(D) X;(AC)/(X) (AC)
STORE X;
3.操作码:指明指令要完成的操作功能及其特性。 3.操作码:指明指令要完成的操作功能及其特性。 操作码 指令系统中的每一条指令都有一个唯一确定的操作 不同指令有不同的操作码。 码,不同指令有不同的操作码。 若指令系统中有m种操作, 若指令系统中有m种操作,即指令系统中可包 条指令,则操作码的位数n应满足: 含m条指令,则操作码的位数n应满足: M<=2n, 故 n>=㏒2m