7(本部)指令系统(原理).ppt_第1页
7(本部)指令系统(原理).ppt_第2页
7(本部)指令系统(原理).ppt_第3页
7(本部)指令系统(原理).ppt_第4页
7(本部)指令系统(原理).ppt_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 指令系统及控制器,四、 指令系统(一) 指令格式1. 指令的基本格式2. 定长操作码指令格式3. 扩展操作码指令格式(二) 指令的寻址方式1. 有效地址的概念2. 数据寻址和指令寻址3. 常见寻址方式(三) CISC和RISC的基本概念,指令系统。在这一章中需要掌握的是指令的格式和指令的寻址,其中指令寻址是考试容易考查的重点。 要知道指令的基本格式结构,定长操作码的格式和扩展操作码的格式结构, 熟悉常见指令的意义。 熟悉常见的寻址方式和利用它们寻找有效地址的步骤。 掌握RISC和CISC的定义和区别,本讲内容,指令系统的基本概念(重点) 指令格式 寻址方式 指令类型 指令系统的设计(重

2、点) 指令系统的设计依据 指令格式设计,指令系统 指令系统的设计,7.1 指令格式,机器指令的要素P300 操作码(Operation Code):指明进行的何种操作(如 ADD, I/O) 源操作数地址(Source Operand Reference):参加操作的操作数的地址,可能有多个。 目的操作数地址(Destination Operand Reference):保存操作结果的地址。 下一条指令的地址(Next Instruction Reference):指明下一条要运行的指令的位置,一般指令是按顺序依次执行的,所以绝大多数指令中并不显示的指明下一条指令的地址,也就是说,指令格式中并

3、不包含这部分信息。只有少数指令需要显示指明下一条指令的地址。,操作数的来源 存储器(存储器地址) 寄存器(寄存器地址) 输入输出端口(输入输出端口地址),4.1 指令格式,操作数的类型 地址(操作数地址,指令地址) 数值(整型数或定点数,浮点数,十进制数) 字符 逻辑型数,4.1 指令格式,地址的数目P302 三地址:Des (Sur1) OP (Sur2),双地址:Des (Sur) OP (Des),单地址:累加器作为其中一个操作数的双操作数型,或单操作数型,零地址:隐含操作数型,或无操作数型,OP,多地址:字符串指令,向量或矩阵运算指令,4.1 指令格式,操作码结构P301 固定长度操作

4、码:操作码长度(占二进制位数)固定不变。 硬件设计简单 指令译码时间开销较小 指令空间效率较低 可变长度操作码:操作码长度随指令地址数目的不同而不同。 硬件设计相对复杂 指令译码时间开销教大 指令空间利用率较高 指令长度 定长指令系统 变长指令系统:一般为字节的整数倍,15/15/15扩展法,机器字长位16位,用15/15/15扩展法可以设计一个具有15条三地址指令、15条双地址指令、15条单地址指令和16条零地址指令的指令系统。,0000 xxxx xxxx xxxx 1110 xxxx xxxx xxxx 1111 0000 xxxx xxxx 1111 1110 xxxx xxxx 11

5、11 1111 0000 xxxx 1111 1111 1110 xxxx 1111 1111 1111 0000 1111 1111 1111 1111,OP A1 A2 A3,15条三地址指令,15条二地址指令,15条单地址指令,16条零地址指令,扩展操作码,还有其它的方法:如:15/14/31 扩展方法有一个重要的原则: 使用频度(即指令在程序中出现概率)高的指令应分配短的操作码,这样,不仅可以有效地缩短称操作码在程序中的平均长度,节省存储器空间,而且缩短了经常使用的指令的译码时间,因而可以提高程序的运行速度。 操作码的平均长度=操作码位数*某种地址格式指令的使用频度 例:10条指令使用

6、频度90%(用4位),40条指令使用频度为10%(用7位) 操作码的平均长度=4*90%+7*10%=4.3 50条指令用固定长度用6位。,4.1 指令格式,关于指令扩展操作码的举例 1. 设某机器采用固定长度指令系统,指令长度为16位,包括 3 地址指令15条、双地址指令10条和若干单地址指令,假定每个地址占4位,请问,该指令系统最多可以容纳多少单地址指令,并设计该指令系统的操作码编码方案。,基本思路 1. 每一条指令需要一个唯一的操作码编码。 2. 不同类型的指令应该具有不同的标识。 3. 采用扩展操作码方案。,0000 xxxx xxxx xxxx 1110 xxxx xxxx xxxx

7、 1111 0000 xxxx xxxx 1111 1001 xxxx xxxx 1111 1010 0000 xxxx 1111 1111 1111 xxxx,OP A1 A2 A3,15条三地址指令,10条二地址指令,96条单地址指令,复旦大学研究生入学考试,设计题(6分) 若某机要求有如下形式的指令:三地址指令4条,单地址指令255条,零地址指令16条(不要求有二地址指令)。设指令字长为12位,每个地址码长为3位,问能否以扩展操作码为其编码?如果其中单地址指令254条呢?说明其理由。,7.3 寻址方式P310,寻址:根据形式地址查找到操作数的过程。,形式地址与有效地址 形式地址:指令中直

8、接给出的地址编码。 有效地址:根据形式地址和寻址方式计算出来的操作数在内存单元中的地址。,有效地址:操作数Data的内存单元地址Add,4.2 寻址方式,寻址方式 定义:指令代码中地址字段的一部分,指明操作数的获取方式或操作数地址的计算方式。 指令中每一个地址字段均有其寻址方式编码(或隐含寻址方式),目的地址,源地址,4.2 寻址方式,指令代码和寻址描述中有关缩写的约定 OP:操作码 Des:目的操作数地址 Sur:源操作数地址 A或Add: 形式地址(内存地址) Mod:寻址方式 Rn : 通用寄存器 Rx :变址寄存器 Rb : 基址寄存器 SP:堆栈指针(寄存器) EA :有效地址 Da

9、ta :操作数 Operand :操作数 (X):表示对象X的内容(值),如(Rn)表示寄存器Rn的内容(值),(A):内存中地址为A的单元的内容。 Imme. Data : 立即数 XXH:16进制数XX,4.2 寻址方式,立即寻址P311 操作数直接在指令代码中给出。,说明 立即寻址只能作为双操作数指令的源操作数。 Operand = Imme. Data 例:MOV AX,1000H,思考 立即寻址的操作数在什么地方,存储器 or 寄存器? 立即数的地址?,4.2 寻址方式,寄存器直接寻址P313 操作数在寄存器中,指令地址字段给出寄存器的地址(编码) EA = Rn, Operand

10、= (Rn) 例:MOV BX, AX,Data,4.2 寻址方式,存储器直接寻址P311 操作数在存储器中,指令地址字段直接给出操作数在存储器中的地址 EA = A, Operand = (A) 例:MOV AX, 1000H,Data,4.2 寻址方式,寄存器间接寻址P313 操作数在存储器中,指令地址字段中给出的寄存器的内容是操作数在存储器中的地址。 EA = (Rn), Operand = (Rn) 例:MOV AX, BX,Data,4.2 寻址方式,存储器间接寻址P312 操作数在存储器中,指令地址字段中给出的存储器地址的单元内容是操作数在存储器中的地址。 EA = (A1), O

11、perand = (A1) 例:MOV R1, (1000H) PDP-11的指令,Data,4.2 寻址方式,基址寻址P314 操作数在存储器中,指令地址字段给出一基址寄存器和一形式地址,基变址寄存器的内容与形式地址之和是操作数的内存地址。 EA = (Rb)+A, Operand = (Rb)+A) 例:MOV AX, 1000HBX,Data,基址寻址的作用:较短的形式地址长度可以实现较大的存储空间的寻址。,4.2 寻址方式,变址寻址P315 操作数在存储器中,指令地址字段给出一变址寄存器和一形式地址,变址寄存器的内容与形式地址之和是操作数的内存地址。 EA = (Rx)+A, Oper

12、and = (Rx)+A) 有的系统中,变址寻址完成后,变址寄存器的内容将自动进行调整。Rx (Rx) + (操作数Data的字节数) 例:MOV AX, 1000HDI,Data,变址寻址的作用:数组操作,串操作,4.2 寻址方式,相对寻址P316 基址寻址的特例,由程序计数器PC作为基址寄存器,指令中给出的形式地址作为位移量,二者之和是操作数的内存地址。 EA = (PC)+A, Operand = (PC)+A) 例:JNE A,Data,4.2 寻址方式,堆栈寻址P318 堆栈的结构:一段内存区域。 栈底,栈顶, 堆栈指针(SP):是一个特殊寄存器部件, 指向栈顶 堆栈操作:PUSH

13、( 从寄存器到堆栈),POP (从堆栈到寄存器),4.2 寻址方式,堆栈寻址 压栈操作:PUSH Rn,假定寄存器Rn为16位寄存器 SP (SP)-2 , (SP) (Rn),堆栈,Data,Data,4.2 寻址方式,堆栈寻址 出栈操作:POP Rn,假定寄存器Rn为16位寄存器 Rn (SP) , SP (SP) + 2,堆栈,Data,Data,4.2 寻址方式,页面寻址 将程序计算器PC的高位部分与形式地址拼接形成操作数的有效地址。 EA (PC)H, 拼接 A 内存分位若干页, (PC)H,指明页地址,形式地址A表明页内的位移量,Data,4.2 指令类型,数据传送指令:Move,

14、Store,Load,Set,Clear,Exchange 算术运算指令:包括定点数、浮点数运算和十进制数运算 逻辑运算指令:And,Or,Not,Xor,Test 移位指令 算术移位,逻辑移位,循环移位 程序控制类指令 几个重要的寄存器:程序计数器PC,程序状态字PSW(或标志寄存器),堆栈指针SP 转移指令:无条件转移指令,有条件转移指令 循环控制指令(LOOP) 子程序调用与返回指令(CALL,RET) 程序中断指令及返回(INT,IRET) 串操作指令(MOVSB,MOVSW) I/O指令:IN,OUT 堆栈指令:PUSH,POP,指令系统 指令系统的设计,4.3 指令系统的设计P32

15、0,设计依据 数据类型:各种操作所处理的数据的类型。 指令格式:指令长度,地址数目,指令中不同域的大小等。 寄存器数目:CPU中可以直接访问的寄存器的数目及使用方法。 寻址(Addressing):操作数的寻址方式。,4.3 指令系统的设计,指令设计的相关因素 操作数量:决定操作码的位数。 操作数数量:采用几个操作数(一般为两个),每个操作数均应包括寻址模式编码。有时操作数是隐含的。 寻址方式数量:有时寻址方式可以是隐含的(由操作码决定) 。 寄存器数量 :确定寄存器编码的位数。 地址范围:存储器直接寻址很少见,但变址(或基址)寻址时,较大的寻址范围必须以较多的偏移量位数为前提。 编址粒度(A

16、ddress Granularity):字节编址或字编址。字节编址方便,但要以更多的地址位数为代价。,4.3 指令系统的设计,指令设计 指令编码设计首先考虑指令编码中的固定不变的部分,然后考虑可变的部分。 指令编码中的固定部分:指令系统方案确定后不可能发生变化的部分。 操作码(数量,位数,编码) 寻址方式(数量,位数,编码) 寄存器(数量,位数,编码) 不同指令所涉及的地址数量,4.3 指令系统的设计,指令系统设计举例 某机字长为16位,数据总线16位,内存容量64KB,8个16位通用寄存器R0R7。指令系统基本要求是: 四种寻址方式:立即寻址,寄存器直接寻址,寄存器间接寻址,变址寻址;立即数

17、和变址寻址时位移量disp均可达16位。 32条双操作数指令(其中必有一操作数是寄存器直接寻址)。 128条单操作数指令。,4.3 指令系统的设计,指令系统设计举例(续) 双操作数指令格式,RISC的产生和发展P326,练习,1.计算机表示指令与数据字格式如下:,OP 地址码,0 4 5 15,S 整数值,0 1 15,问: 1)至多可表示多少种操作码? 2)可直接存取内存大小有多少个字? 3)整数可表示的范围? 4)如果加法的操作码为10101,某变量NUM的地址为24D,请以十六进制表示ADD NUM。 5)执行加法时,操作数与结果存在哪里?,答案,1)25=32,2)211=2048,3)-215215-1,4)10101 00000011000=A818H,5)在累加器中,练习,设某

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论