k12第4章指令系统

上传人:今*** 文档编号:110006177 上传时间:2019-10-28 格式:PPT 页数:72 大小:1.73MB
返回 下载 相关 举报
k12第4章指令系统_第1页
第1页 / 共72页
k12第4章指令系统_第2页
第2页 / 共72页
k12第4章指令系统_第3页
第3页 / 共72页
k12第4章指令系统_第4页
第4页 / 共72页
k12第4章指令系统_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《k12第4章指令系统》由会员分享,可在线阅读,更多相关《k12第4章指令系统(72页珍藏版)》请在金锄头文库上搜索。

1、1,第4章 指令系统,4.1 指令格式 4.2 寻址方式 4.3 指令类型 4.4 复杂指令系统计算机和精简指令系统计算机 4.5 教学计算机的指令系统,2,4.1 指令格式,4.1.1 指令四要素 4.1.2 指令的地址数目 4.1.3 指令的操作码 4.1.4 指令长度,3,4.1.1 指令四要素,1)操作码 表征指令的操作特性与功能。n 2n 2)源操作数地址 通过该地址取得所需的操作数。 来源:寄存器组、主存或虚存、I/O设备 3)目的操作数地址 指出指令的操作结果被存放的地方。 4)下一条指令的地址 顺序执行:隐含(PC)+1 PC 改变执行顺序:显式指出,4,4.1.2 指令的地址

2、数目,根据地址码部分所给出地址的个数可分为: 零地址指令、一地址指令、二地址指令、 三地址指令、多地址指令 1)零地址指令 只有操作码,而没有地址码 无需任何操作数 操作数是隐含的,操作码,5,2)一地址指令 单操作数指令 隐含第二操作数,如: ()(),6,3)二地址指令 双操作数指令 ()() () 进一步分类为 MM RR RM,7,4)三地址指令 ()() 5)多地址指令 用于处理成批数据,8,4.1.3 指令的操作码,1)指令操作码的两种编码方式 定长编码(固定格式) 操作码长度固定, 且集中放在指令字的一个字段中。 变长编码(可变格式) 操作码的长度可变,且分散地放在指令字的不同字

3、段中。,9,2)可变格式指令的扩展技术,指令字中用一个固定长度的字段表示基本操作码,对于不需要某个地址码的指令,可将操作码扩充到地址码字段。 例如:某机器的指令长度为16位,其中4位基本操作码字段,3个4位地址码字段,采用操作码扩展技术可以形成多于16条指令。,10,一种扩展方法如下: 15条三地址指令,操作码 00001110 15条二地址指令, 操作码 11110000 11111110 15条一地址指令, 操作码 111111110000 111111111110 16条一地址指令, 操作码 11111111111100001111111111111111 共61条,11,例题:假设某计

4、算机指令长度为20位,具有二地址指令、一地址指令、零地址指令三类指令形式,在此情况下,这台计算机地址规定用6位表示,问: 若操作码字段固定为8位,现已设计出m条二地址指令,n条零地址指令,在此情况下,这台计算机最多可以设计出多少条一地址指令? 当二地址指令条数取最大值,且此基础上一地址指令条数也取最大值时,计算这台计算机最多指令数是多少?,12,答: 由于操作码的位数决定了指令系统的规模及指令的性质。所以一地址指令的条数: 28-m-n=256-m-n 应为255+63+64=382条。,13,操作码扩展技术遵循原则 使用频度高的指令分配短的操作码 使用频度低的指令分配较长的操作码 霍夫曼编码

5、(Huffman) 用霍夫曼树的方法实现: 将所有指令的使用频度由小到大排列,每次选择其中最小的两个频度求和得到一个新结点,然后把它作为叶结点。一个新结点与其他叶结点再按频度大小排序。如此重复,直至全部使用频度都处理完毕最后形成一个频度为1的根结点为止。 由根结点开始向下延伸,对两个分支用一位“1”或“0”来表示,直至遍历所有的结点为止。,缩短平均编码长度,14,例题:某计算机有10条指令,它们的使用频度分别为: 0.3,0.24,0.16,0.12,0.07,0.04,0.03,0.02,0.01,0.01 要求用霍夫曼编码对其编码,并求出平均编码长度。 解:霍夫曼编码见图。 平均编码长度=

6、0.01*7+0.01*7+0.02*6+0.03*5+0.04*4+0.07*3 +0.12*3+0.16*3+0.24*2+0.3*2=2.7,Pi:频度 Li:指令操作码长度,15,霍夫曼 (Huffman)扩展编码 在霍夫曼 (Huffman) 编码的基础上再对码长加以一定限制,且对编码作适当的改变,使得编码为有限的几种码长。 例题:某模型机有8条指令,使用频度分别为: 0.3,0.3,0.2,0.1,0.05,0.02,0.02,0.01 试分别用霍夫曼编码和扩展编码对其操作码进行编码,限定扩展编码只能有两种长度。它们的平均编码长度各比定长操作码的平均编码长度减少多少?,16,解:,

7、霍夫曼编码平均码长为: 0.01*6+0.02*6+0.02*5+0.05*4+0.1*3+0.2*2+0.3*2+0.3*2=2.38,17,扩展编码平均码长为:(0.01+0.02+0.02+0.05+0.1)*5+(0.2+0.3+0.3)*2=2.6 定长操作码的平均码长为:3 霍夫曼编码的平均码长比定长码减少: (3-2.38)/3=21% 扩展码则平均减少: (3-2.6)/3=13%,18,4.1.4 指令长度,1)指令长度与机器字长的关系 机器字长 是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。 指令长度 一条指令中包含二进制代码的位数。 单字长指令、半字长

8、指令、双字长指令 使用多字长指令的目的 提供足够的地址位来解决访问主存任何单元的寻址问题。,19,2)等长指令字结构、变长指令字结构,等长指令字结构 所有指令的长度都是相等的。 指令字结构简单,指令译码和流水线执行较容易。 变长指令字结构 指令字长度随指令功能而异。 指令字结构灵活,能缩短指令的平均长度,但指令的控制较复杂。,20,4.2 寻址方式,形成操作数或指令地址的方式,称为寻址方式。 寻址方式分为两类 指令寻址方式 操作数寻址方式 指令寻址方式 顺序寻址方式 跳跃寻址方式,21,操作数的寻址方式 指令中地址码字段一般是由形式地址和寻址方式特征位(或字段)组成,并不是操作数的有效地址(实

9、际地址)。 所谓操作数的寻址方式,就是形成操作数的有效地址(EA)的方法。,22,确定一台计算机系统的寻址方式,必须综合考虑以下几点: 指令内包含的地址尽量短,以缩短指令长度 能访问尽可能大的存储空间 寻址方法尽可能简单,简化硬件设计 在不改变指令的情况下,改变地址的实际值,从而方便地访问数组、串、表格等复杂数据。,23,4.2.1 常用的基本寻址方式 1)立即寻址 指令的地址字段指出的是操作数本身。 立即寻址方式的特点: 指令执行速度快; 在执行过程,操作数不能修改。 EA=(PC),24,指令的地址码部分直接给出操作数在存储器中的地址(有效地址)。 有效地址EA=A 直接寻址方式的特点 简

10、单直观,便于硬件实现; 要寻址大容量的主存空间,将造成指令长度加长。,2)直接寻址,25,3)间接寻址,指令中的地址码部分给出一个指示操作数有效地址的地址指示字;通过地址指示字找到操作数的有效地址,再由有效地址找到操作数。 有效地址EA=(A),A,EA,26,间接寻址方式的特点: 非常灵活,当操作数地址需改变时,不必修改指令,只要修改有效地址中的内容即可。 一次间接需两次访问主存才能取得操作数,降低了指令执行速度。,27,4)寄存器寻址方式,操作数存放在CPU的通用寄存器中。 指令中地址码部分给出某一通用寄存器的编号。 EA=Ri,操作数,28,5)寄存器间接寻址,指令中地址码部分所指定的寄

11、存器中内容是操作数的有效地址。 有效地址EA=(Ri) 寄存器间接寻址方式的特点 只需访问存储器一次即可得到操作数; 寄存器给出全字长的地址码,可寻址较大的存储空间。,操作数,主存,29,6)相对寻址,程序计数器PC的当前内容加上指令给出的形式地址形成操作数的有效地址。 形式地址实际上规定了操作数地址和指令地址的相对位置,这个值称为相对位移量(Disp)。 有效地址EA=(PC)+Disp,30,相对寻址方式的特点 转移地址不是固定的,随着PC值的变化而变化,有利于程序的再定位。 位移量一般用补码表示。如果位移量为8位,则寻址范围为(PC)128(PC)+127。,31,例题:若某计算机数据线

12、、地址线均是8bit,有一条相对寻址的无条件转移指令存于主存的20H单元中,指令给出的位移量D=00010101B,设该指令占用2个字节,计算: (1)取该指令时PC的内容; (2)该指令执行结束时PC的内容。,32,7)变址寻址,指令地址码部分给出的形式地址与指令中指定的变址寄存器的内容相加开成操作数的有效地址。 有效地址EA=(RX)+A,主存,操作数,X,通用寄存器,EA,33,8)基址寻址,指令地址码部分给出的形式地址与基址寄存器中的内容相加形成操作数的有效地址。 有效地址EA=(Rb)+A,主存,操作数,X,通用寄存器,34,基址寻址中基址寄存器提供基准量而指令提供位移量;变址寻址中

13、变址寄存器提供修改量而指令提供基准量。 基址寻址面向系统,用于程序定位和扩大寻址空间;变址寻址面向用户,用于访问数组、向量、字符串等成批数据,以解决程序的循环控制问题。,35,4.2.2 复合型寻址方式,1)基址变址寻址方式 EA= (Rb)+ (Rx)+A 2)相对间接寻址方式 EA=(PC)+A) 3)间接相对寻址方式 EA=(PC)+(A) 4)变址间接寻址方式 EA=(Rx)+A) 5)间接变址寻址方式 EA=(Rx)+(A),36,例题:一种单地址指令的结构如下图所示:,其中I为间址特征,X为寻址模式,D为形式地址,设R为通用寄存器,也可作为变址寄存器。在下表中填入适当的寻址方式名称

14、。,37,38,4.3 指令类型,设计指令系统,应考虑如下原则: 完整性 有效性 扩充性 兼容性,39,指令类型(按指令所完成的功能分类) 数据传送指令 算术逻辑运算指令 移位操作指令 浮点运算指令 十进制运算指令 字符串处理指令 转移类指令 堆栈操作指令 输入/输出指令 其他指令,40,1)数据传送指令,一般传送指令 用来实现主存和寄存器之间、主存和主存、寄存器和寄存器之间的数据传送。 数据交换指令 数据块传送指令,41,2)算术逻辑运算指令,(1)算术运算指令 这类指令用于定点数的算术运算 如:加、减、乘、除、加1、减1、求补、比较等指令 (2)逻辑运算指令 与、或、非、异或 位操作:测试

15、、清除、置位、求反等,算术逻辑运算指令通常根据运算结果设置状态位: Z、 S 、 C、V、P,42,3)移位操作指令,算术移位(带符号数) 逻辑移位(无符号数) 循环移位:大循环、小循环 双字移位,C,43,4)浮点运算指令 5)十进制运算指令 6)字符串处理指令 如:字符串传送、字符串比较、字符串查找、字符串提取、字符串转换等 7)转移类指令 (1)转移指令 无条件转移指令jump 条件转移指令branch,44,转移指令的转移地址一般采用直接寻址的和相对寻址方式来确定。 采用直接寻址方式,转移地址由指令地址码部分直接给出。 采用相对寻址方式,则称为相对转移,转移地址为当前指令地址(PC的值

16、)和指令地址部分给出的位移量相加。,45,16种可能采用的转移条件 P=1 P=0 Z=1 Z=0 S=1 S =0 V=1 V=0 无符号数 带符号数 AB C+Z=0 (SV)+Z =0,46,(2)循环控制指令 (3)调用指令与返回指令 call与jump和branch的主要差别是保留返回地址(用堆栈) 保留、恢复寄存器内容的两种方法 由调用程序保留、恢复 由被调用程序保留、恢复,47,8)堆栈及堆栈操作指令,堆栈是以“先进后出”(FILO)方式工作的一个存储区。 堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定。 压栈操作:,PUSH AX,12H,34H,1234H,48,弹栈的操作,POP BX,1234

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号