第四章 指令系统[一]

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解: 由于双操作数指令现有K条(最多有28条),所以留 有(28-K)个编码作为扩展操作码标志,用于扩展到单操 作数指令;
单操作数指令现有L条(最多有(28-K) ×212条),所以留 有[(28-K) ×212-L]个编码作为扩展操作码标志,用于扩 展到无操作数指令;
所以,无操作数指令条数= [(28-K) ×212-L] ×212
80 81 201 202
主存
子程序
主程序 调用子程序
……
调用子程序 JMP @A
图中表示两次调用子程序,只要在调用前先将返回地址存入子程 序最末条指令的形式地址A的存储单元内,便可准确返回程序断点. 例:指令系统中如有196条不同的指令,则指令的操作码至少应为( ) 位.某存储器按字编址,字长为32位,指令的形式地址为8位,直接寻址 的空间为( ),一次间接寻址的空间为( ).
0000
XXXX
YYYY
ZZZZ
1110
XXXX
0000 1 1 01 1110 1110
YYYY
YYYY YYYY 0000 0001
ZZZZ
ZZZZ ZZZZ ZZZZ ZZZZ
15条三地 址指令 14条二地 址指令
扩展操作码 标志
1111 1111 1111
扩展操作码
标志
1111
1111
1111 1111
4.存储器间接寻址(Indirect addressing):指令地 址码部分给出操作数地址的地址.
E=(D) Data=(E)=((D))
主存
IR OP

D D E
E …
间址单元 (其内容称 为指针)

缺点:执行阶段至少两次访 问内存,才能取到操作数
操作数
存储器间接寻址的优点: (1)提供了编程灵活性(如下图 所示); (2)有效缩短地址码长度,扩大寻址空间。 主存
若操作码字段固定为8位,现设计出m条双操作数指令,n 条无操作数指令,在此情况下,这台计算机最多可以设计出 多少条单操作数指令? 解:28-m-n条
例2: 某计算机指令长度为32位,有3种指令:双操作数指令、 单操作数指令、无操作数指令.现在用扩展操作码的方式 设计指令,假设每个操作数地址规定用12位表示,已知有双 操作数指令K条,单操作数指令L条,问无操作数指令有多少 条?
(1) 三个容易混淆的基本概念
• 指令字长:一条指令中包含二进制代码的位数. • 存储字长:存储单元中二进制数的位数. • 机器字长:计算机能直接处理的二进制数据的 位数,通常与主存单元的位数一致.
(2) 指令的长度
• 单字长指令:指令字长等于机器字长. • 双字长指令: 指令字长等于两个机器字长的指令. 例如:IBM 370的指令长度有16位(半字)、32位(单字) 及 48位(一个半字).
2.存储器直接寻址(Memory direct addressing):指令的地 址码部分给出操作数的存储单元地址. 主存 直接寻址的逻辑表达式为: E=D Data=(E)=(D)
… IR OP … D 操作数 … D
特点:(1)在执行阶段只需一次 访问内存,就能取到操作数; (2)不必作寻址计算,简单并易于硬件实现; (3) 主存容 量越大,所需地址码越来越多,导致指令的长度增加. 例: 某机主存容量为 16MB,若按字节编址,其地址码为 多少位?
• 形式地址(D):也称偏移量,是指令地址字段中给定的地址.
• 有效地址(E):对形式地址进行一定计算而得到的操作数 的实际地址,由寻址方式和形式地址共同确定.
1.立即寻址(immediate addressing):所需的操作数由指 令地址码部分直接给出,即操作数包含在指令内. Data=D
优点:取指令的同时操作数被立即取出,不必再次访问 存储器,提高了指令的执行速度。 缺点:由于指令字的长度有限,D的位数限制了立即数 所能表示的数据范围。一般情况下用于给某一个寄存器或 存储单元赋予一个初值或提供一个常数。 例如:Intel8086 中的立即寻址指令。 MOV Ax,2000H; 将立即数2000H存入累加器AX中
4.3 指令和数据的寻址方式
寻址:寻找操作数的地址或下一条将要执行的指令 地址,分为指令寻址方式和操作数寻址方式。
4.3.1 指令的寻址方式 1.顺序寻址方式
+1 PC 地址 内存
2.跳跃寻址方式
PC
内存 地址 3 JMP 6 4 LDA 206 5 SUB 207 6 INC 7 LDA 200 8
2.地址码结构
设计指令的地址码格式时需解决:
• 一条指令中指明几个地址(与指令所涉及的操作数个 数有关); • 如何给出地址(显地址--地址信息明显地给出;隐地址-地址信息依据某种事先约定, 用隐含的式给出).
• 地址码应选多长(与存储单元容量、编址单位大小和 寻址方式有关).
以双操作数运算类指令(如加法指令)为例: (1) 四地址双操作数指令
(2) 变长操作码:操作码长度可变,不同指令的操作码 长度不完全相同,操作码位数不固定,分散地位于指 令字的不同位臵上。 特点:可以在指令字长有限的前提下仍保持较丰 富的指令种类.但由于操作码的位数不固定且位臵分散, 故增加了指令译码与分析的难度,使硬件设计复杂化。 具体做法:在指令中有一个固定长度的字段表示基本操 作码,而对于一部分不需要某个地址码的指令,把它们 的操作码扩充到该地址字段,也称扩展操作码技术.
学习指令系统的目的:对于了解计算机的工作过 程和控制方法有重要的作用。 主要学习内容: 4.1 指令格式 4.2 指令和数据的寻址方式 4.3 CISC和RISC
4.1 指令格式
1.指令格式 操作码 地址码
• 操作码(Operation code):指明该指令执行 什么性质的操作,不同的指令有不同的操作 码.其位数反映了机器操作种类,即机器允许 的指令条数. • 地址码:指明操作数所在的地址(Source operand reference),结果存放的地址(Result operand reference)以及下一条指令的地址 (Next instruction reference).
MUL A,B,X; (A) ×(B) ADD X,C,X; (X)+(C) SUB X,D,X; (X)-(D) ADD E,F,Y; (E)+(F) DIV X,Y,X; (X)/(Y) X X Y X X
(2)二地址指令程序
MOV X,A; (A) X X X X Y X MUL X,B; (X) ×(B) ADD X,C; (X)+(C) SUB X,D; (X)-(D) MOV Y,E; (E) ADD DIV Y Y,F; (F)+(Y) X,Y; (X)/(Y)
X
3.操作码:指明指令要完成的操作功能及其特性。 指令系统中的每一条指令都有一个唯一确定的操作 码,不同指令有不同的操作码。 若指令系统中有m种操作,即指令系统中可包 含m条指令,则操作码的位数n应满足: M<=2n, 故 n>=㏒2m
(1) 定长操作码:所有指令的操作码长度一致,均为n 位操作码, 集中位于指令字的固定字段中,最多能够 表示2n条指令。 特点:简单规整,由于定长的操作码在指令字中所 占的位数、位臵固定,所以指令译码简单,有利于简 化硬件设计。
A1
下一条指令的地址由PC提供
(4) 一地址双操作数指令 操作码 A1 AC
指令功能: (A1) OP (AC) AC为累加寄存器
下一条指令的地址由PC提供
(5) 零地址双操作数指令 操作码 指令功能:堆栈栈顶和次栈顶中的内容从堆栈 弹出后,进行某种运算,结果压入堆栈.
• 地址个数对程序长度和指令长度的影响 同一个问题,用地址数越多的指令编写的程序越短, 但指令长度越长. 例:分别用三地址、二地址、一地址指令编制计算 x=(a×b+c-d)/(e+f)的程序。 解:假设a、b、c…为操作数,A、B、C…为操作数地址 (1)三地址指令程序
操作码 A1 A2 A3 下条指令地址(A4)
指令功能: (A1) OP (A2)
A3 A4提供下一条指令的地址
(2) 三地址双操作数指令
操作码 A1 A2 A3
指令功能: (A1) OP (A2) A3 下一条指令的地址由PC提供 (3) 二地址双操作数指令
操作码 A1 A2
指令功能: (A1) OP (A2)
4:16译码器

15条三地址指令

14条二地址指令

31条一地址指令

16条零地址指令
图4.1 指令译码逻辑图
• 注意事项: • 短操作码不能与长操作码 的前面代码部分相同;
• 各指令的操作码一定不能重复,而且各类指令的 格式安排应统一规整.
例1(P151.题2):假设某计算机指令长度为20位,具有双操作 数、单操作数、无操作数三类指令形式,每个操作数地址 规定用6位表示,问:
0
1 2
LDA 200 ADD 201 INC
7
LDA 200
4.3.2 操作数寻址方式(Addressing modes)
指令格式为:
OP
设Data为操作数
寻址方式MOD 形式地址D
操作数寻址的目的:CPU根据指令约定的寻址方式对 地址字段的有关信息做出解释,以找到操作数。 • 寻址方式在指令格式中的表示方法通常有两种: 由不同的操作码指明操作数的不同寻址方式(操作码 指明法); 在指令格式中增设寻址方式特征位(寻址方式位法)。
解:16MB=224B ,所以地址码为24位.
3.寄存器直接寻址(Register direct addressing):指令 的地址码部分给出操作数所在的寄存器号. E= Ri Data=(E)=(Ri) 寄存器
R0 … IR OP … D( Ri ) 操作数 … Ri
特点:(1)由于操作数位于寄存器中,所以不用访存 即可取到操作数,所以执行速度较快;(2)因为寄存器 数远小于主存单元数,所以寻址所需地址短, 导致了指令字短。
• 等长指令字结构:一个指令系统中,各种指令字 长度是相等的.RISC采用等长指令字结构. 优点:指令字结构简单,长度固定,指令译码时间 短,有利于硬件控制系统的设计,执行速度快; 缺点:指令平均长度长、容易出现冗余码点,指令 不易扩展等. • 变长指令字结构:一个指令系统中,各种指来自百度文库字 长度随功能而异.CISC采用变长指令字结构. 优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同,硬件控制系统 复杂.
(3) 一地址指令程序 LOAD E; (E) AC AC
ADD F; (AC)+(F)
STORE X; (AC)
LOAD A; (A)
X
AC
MUL B; (AC) ×(B)
ADD C; (AC)+(C)
AC
AC
SUB D; (AC)-(D)
DIV X;(AC)/(X)
AC
AC
STORE X; (AC)
例:设某机器的指令字长为16位,包括基本操作码4位 和三个地址字段,每个地址字段长4位,其格式为: 15 12 11 OP A1 8 7 4 3 0
A2
A3
采用扩展操作码的方式,设计: (1)15条三地址指令,15条两地址指令,15条 一地址指令,16条零地址指令.
(2)15条三地址指令,14条两地址指令,31条 一地址指令,16条零地址指令.
1110
1111 1111 1111 1111
1111
0000 1110 1111 1111
ZZZZ
ZZZZ ZZZZ 0000 1111
31条一地 址指令
16条零地 址指令
扩展操作码
1111 1111
标志
指令寄存器
×××× ××××
××××
××××
译码开始
4:16译码器
4:16译码器
4:16译码器
5.寄存器间址(Register indirect addressing):指令中给出 寄存器地址,而寄存器中存放操作数在内存的地址。 E=(Ri)
第四章 指令系统
指令(instruction): 计算机硬件能识别并直接 执行的操作命令(如加、减、传送、转移等), 即机器指令(Machine Instruction)。 指令系统(指令集:instruction sets):一台计算机 能执行的全部指令的集合。 指令系统反映了计算机具有的基本功能,是计 算机系统硬件、软件的主要分界面。 指令系统既是计算机硬件设计的主要依据,又是 计算机软件设计的基础,所以,一台计算机指令系 统的优劣直接影响着计算机系统的性能.
相关文档
最新文档