第七章指令系统计算机组成原理_第1页
第七章指令系统计算机组成原理_第2页
第七章指令系统计算机组成原理_第3页
第七章指令系统计算机组成原理_第4页
第七章指令系统计算机组成原理_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、7.1 机器指令机器指令 7.2 操作数类型和操作类型操作数类型和操作类型 7.3 寻址方式寻址方式 7.4 指令格式举例指令格式举例 7.5 RISC 技术技术 一、指令的一般格式一、指令的一般格式 操作码字段操作码字段 地址码字段地址码字段1. 操作码操作码反映机器做什么操作反映机器做什么操作(1) 长度固定长度固定(2) 长度可变长度可变用于指令字长较长的情况用于指令字长较长的情况操作码分散在指令字的不同字段中操作码分散在指令字的不同字段中便于译码,扩展性差便于译码,扩展性差能缩短指令平均长度能缩短指令平均长度增加译码和分析的难度,使控制器复杂,增加译码和分析的难度,使控制器复杂,采用扩

2、展操作码技术采用扩展操作码技术 扩展操作码技术扩展操作码技术操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码最多最多15条三地址指令条三地址指令最多最多15条二地址指

3、令条二地址指令最多最多15条一地址指令条一地址指令16条零地址指令条零地址指令操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码三地址指令操作码三地址指令操作码每减少一

4、种可多构成每减少一种可多构成24 种二地址指令种二地址指令二地址指令操作码二地址指令操作码每减少一种可多构成每减少一种可多构成24 种一地址指令种一地址指令2. 地址码地址码(1) 四地址四地址(2) 三地址三地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作数地址第一操作数地址A2 第二操作数地址第二操作数地址A3 结果的地址结果的地址A4 下一条指令地址下一条指令地址若若 PC 代替代替 A4 ?(A1) OP (A2) A38 8 8 8 OP A1 A2 A3(A1) OP (A2) A3寻址范围寻址范围 26 = 64寻址范围寻址范围 28 = 256若若 A3 用用

5、A1 或或 A2 代替?代替?设指令字长为设指令字长为 32 位位操作码固定为操作码固定为 8 位位(3) 二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或若若ACC 代替代替 A1(或(或A2)(4) 一地址一地址(5) 零地址零地址OP A18 24无地址码,例如:空操作(无地址码,例如:空操作(NOP),停机停机(HLT), 子程序返回(子程序返回(RET)等。等。(ACC) OP (A1) ACC寻址范围寻址范围 212 = 4 K寻址范围寻址范围 224 = 16 M 二、指令字长二、指令字长指令字长决定于指令字长决定于操作码

6、的长度操作码的长度指令字长指令字长 = = 存储字长存储字长 2. 2. 指令字长指令字长 可变可变操作数地址的长度操作数地址的长度操作数地址的个数操作数地址的个数 1. 1. 指令字长指令字长 固定固定7.3 寻址方式寻址方式 程序程序y = ax + b存储过程。存储过程。 存储器存储器01234567891011(1) 定义变量定义变量 a, x, b, y问题一:问题一:程序和数据如何存储?程序和数据如何存储?(2) y= ax + b步骤分解步骤分解LDA 8MUL 9ADD 10STA 11 x a b y x a b y存储器存储器01234567891011LDA 8MUL 9

7、ADD 10STA 11 ? ENDPCPCPCPCPC ? ?问题二:问题二:CPU如何找到指令?如何找到指令? JMP 7PC (1) 顺序寻址顺序寻址 程序计数器程序计数器PC加加1,自动,自动形成下一条指令地址。形成下一条指令地址。(2) 跳跃寻址跳跃寻址下一条指令地址由指令下一条指令地址由指令的地址码给出。的地址码给出。 ALU CU ACC . R0 . JMP 7 HLT x a b y01234567891011LDA xMUL aADD bSTA yR8 指令格式指令格式 有效地址有效地址 EA操作数的真实地址操作数的真实地址 ,由,由寻址特征寻址特征和和形式地址形式地址共同

8、决定。共同决定。形式地址形式地址 A操作码操作码OP寻址特征寻址特征T 1. 直接寻址直接寻址操作数操作数M8 执行阶段访问一次存储器。执行阶段访问一次存储器。 A 的位数决定了操作数的寻址范围。的位数决定了操作数的寻址范围。形式地址形式地址A直接得到直接得到有效地址有效地址EA。寻址特点:寻址特点:LDA8M比较快地找比较快地找到操作数?到操作数? 2. 寄存器寻址寄存器寻址 操作数位于寄存器中操作数位于寄存器中, 指令中的指令中的形式地址形式地址A是是寄存寄存器标号器标号。操作数操作数R0R8R15寄存器寄存器LDA8R 执行阶段不访存,执行速度快。执行阶段不访存,执行速度快。 寄存器个数

9、较少,寻址空间有限。寄存器个数较少,寻址空间有限。寻址特点:寻址特点: 如何扩大如何扩大 寻址范围?寻址范围? 3. 立即寻址立即寻址 指令执行阶段不访存指令执行阶段不访存 A 的位数限制了立即数的范围的位数限制了立即数的范围OP # A立即寻址特征立即寻址特征立即数立即数 可正可负可正可负 补码补码形式地址形式地址 A 就是操作数就是操作数4. 隐含寻址隐含寻址操作数地址隐含在操作码中操作数地址隐含在操作码中ADDA操作数操作数主存主存寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在 ACC 中中如如 8086MUL 指令指令被乘数隐含在被乘数隐含在 AX(16位)

10、或位)或 AL(8位)中位)中MOVS 指令指令源操作数的地址隐含在源操作数的地址隐含在 SI 中中目的操作数的地址隐含在目的操作数的地址隐含在 DI 中中 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长5. 间接寻址间接寻址EA =(A) 有效地址由形式地址间接提供有效地址由形式地址间接提供OPA寻址特征寻址特征AEA主存主存EAA1EA A1主存主存 EA10 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编制程序便于编制程序OPA寻址特征寻址特征A一次间址一次间址多次间址多次间址操作数操作数操作数操作数多次访存多次访存 子

11、程序子程序主程序主程序8081201202调用子程序调用子程序调用子程序调用子程序间接寻址编程举例间接寻址编程举例(A) = 81(A) = 202 间址特征间址特征JMP A EA = ( Ri )6. 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,有效地址在寄存器中, 操作数在存储器中,执行阶段访存操作数在存储器中,执行阶段访存操作数操作数主存主存OPRi寻址特征寻址特征 便于编制循环程序便于编制循环程序地址地址R0RiRn寄存器寄存器有效地址在寄存器中有效地址在寄存器中7. 基址寻址基址寻址(1) (1) 采用采用专用寄存器专用寄存器作基址寄存器作基址寄存器(2)(2) 采用采用通用

12、寄存器通用寄存器作基址寄存器作基址寄存器操作数操作数主存主存寻址特征寻址特征ALUALUOPOPR R0 0A AR R0 0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器通用寄存器R R0 0R Rn n-1-1R R1 1 基址寄存器的内容由基址寄存器的内容由操作系统操作系统确定确定 程序执行过程中程序执行过程中 R R0 0 内容不变,形式地址内容不变,形式地址 A A 可变可变8. 8. 变址寻址变址寻址EA = ( IX ) +AEA = ( IX ) +AOPOPA A操作数操作数主存主存寻址特征寻址特征ALUAL

13、UIXIX 可扩大寻址范围可扩大寻址范围 便于处理便于处理数组问题数组问题 IX IX 的内容由用户给定的内容由用户给定 IX IX 为变址寄存器(专用)为变址寄存器(专用) 程序执行过程程序执行过程 IX IX 内容可变内容可变, ,形式地址形式地址 A A 不变不变通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器 9. 9. 相对寻址相对寻址 EA = ( PC ) + A EA = ( PC ) + A A A 是相对于当前指令的位移量(可正可负,补码)是相对于当前指令的位移量(可正可负,补码) A A 的位数决定操作数的寻址范围的位数决定操作数的寻址范围 程序浮动程序浮动

14、广泛用于转移指令广泛用于转移指令操作数操作数寻址特征寻址特征ALUALUOPOPA A相对距离相对距离 A A10001000PCPC 主存主存10001000A AOPOP例例7.2 设相对寻址的转移指令占设相对寻址的转移指令占3个字节,第一字个字节,第一字节为操作码,第二,三字节为相对位移量(补码节为操作码,第二,三字节为相对位移量(补码表示),而且数据在存储器中采用以低字节地址表示),而且数据在存储器中采用以低字节地址为字地址的存放方式,每当为字地址的存放方式,每当CPU从存储器取出一从存储器取出一个字节时,即自动完成个字节时,即自动完成(PC)+1PC.1)若若PC当前值为当前值为24

15、0(十进制),要求转移到(十进制),要求转移到290(十进制),则转移指令的第二三字节的机器代(十进制),则转移指令的第二三字节的机器代码是什么?码是什么?2)如)如PC当前值为当前值为240(十进制),要求转移到(十进制),要求转移到200(十进制),则转移指令的第二三字节的机器(十进制),则转移指令的第二三字节的机器代码是什么?代码是什么?10. 堆栈寻址堆栈寻址(1) 堆栈的特点堆栈的特点堆栈堆栈硬堆栈硬堆栈软堆栈软堆栈多个寄存器多个寄存器指定的存储空间指定的存储空间先进后出先进后出(一个入出口)(一个入出口) 栈顶地址栈顶地址 由由 SP 指出指出 11FFFH +12000 H进栈进

16、栈 (SP) 1 SP出栈出栈 (SP)+ 1 SP栈顶栈顶栈底栈底2000 HSP2000 H1FFF HSP1FFFH栈顶栈顶栈底栈底进栈进栈出栈出栈 1FFF H栈顶栈顶 2000 H栈顶栈顶(2) 堆栈寻址举例堆栈寻址举例15200HACCSPX栈顶栈顶200H栈底栈底主存主存151FFHACCSP15栈顶栈顶200H栈底栈底主存主存X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX栈顶栈顶200H栈底栈底主存主存151FFH15200HACCSP栈顶栈顶200H栈底栈底主存主存X15(3) SP 的修改与主存编址方法有关的修改与主存编

17、址方法有关 按按 字字 编址编址进栈进栈出栈出栈(SP) 1 SP(SP)+ 1 SP 按按 字节字节 编址编址存储字长存储字长 16 位位进栈进栈出栈出栈(SP) 2 SP(SP)+ 2 SP存储字长存储字长 32 位位进栈进栈出栈出栈(SP) 4 SP(SP)+ 4 SP问问: :下图所指的寻址方式的名称下图所指的寻址方式的名称: : 操作操作操作数操作数 指令指令 操作码操作码 寄存器寄存器 指令指令 操作数操作数 R 操操作作码码 存存储储器器 指指令令 操操作作数数 A 操操作作码码 操操作作数数 A 存存储储器器 寄寄存存器器 指指令令 R 存存储储器器 指指令令 操操作作码码 操

18、操作作数数 A A 操操作作码码 操操作作数数 PC 指指令令 存存储储器器 A I A 存存储储器器 寄寄存存器器 R 指指令令 操操作作码码 操操作作数数 一、设计指令格式时应考虑的各种因素一、设计指令格式时应考虑的各种因素1. 指令系统的指令系统的 兼容性兼容性 (向上兼容)(向上兼容)2. 其他因素其他因素操作类型操作类型数据类型数据类型指令格式指令格式包括指令个数及操作的难易程度包括指令个数及操作的难易程度指令字长是否固定指令字长是否固定寻址方式寻址方式寄存器个数寄存器个数地址码位数、地址个数、寻址方式类型地址码位数、地址个数、寻址方式类型操作码位数、是否采用扩展操作码技术,操作码位

19、数、是否采用扩展操作码技术,确定哪些数据类型可参与操作确定哪些数据类型可参与操作指令寻址、操作数寻址指令寻址、操作数寻址寄存器的多少直接影响指令的执行时间寄存器的多少直接影响指令的执行时间3. Intel 8086(1) 指令字长指令字长(2) 地址格式地址格式1 6 个字节个字节MOV WORD PTR0204, 0138H 6 字节字节INC AX 1 字节字节一地址一地址NOP 1 字节字节CALL段内调用段内调用 3 字节字节零地址零地址 5 字节字节段间调用段间调用寄存器寄存器 寄存器寄存器寄存器寄存器 立即数立即数寄存器寄存器 存储器存储器ADD AX,BX 2 字节字节ADD A

20、X,3048H 4 字节字节ADD AX,3048H 3 字节字节二地址二地址CALL例例7.4 某机字长某机字长16位,存储器直接寻址空间为位,存储器直接寻址空间为128字,变字,变址时的位移量为址时的位移量为-64+63,16个通用寄存器均可作为变址个通用寄存器均可作为变址寄存器。设计一套指令系统格式,满足下列寻址类型的寄存器。设计一套指令系统格式,满足下列寻址类型的要求:要求:(1)直接寻址的二地址指令)直接寻址的二地址指令3条条(2)变址寻址的一地址指令)变址寻址的一地址指令6条条(3)寄存器寻址的二地址指令)寄存器寻址的二地址指令8条条(4)直接寻址的一地址指令)直接寻址的一地址指令

21、12条条(5)零地址指令)零地址指令32条。条。 试问还有多少种代码未用。试问还有多少种代码未用。例例 7.5 设某机配有基址寄存器和变址寄存器,采用设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长都为指令字长、机器字长和存储字长都为16位。位。(1)若采用单字长指令,共能完成)若采用单字长指令,共能完成105种操作,则种操作,则指令可直接寻址的范围是多少?一次间接寻址的寻指令可直接寻址的范围是多少?一次间接寻址的寻址范围是多少?画出其指令格式并说明各字段的含址范围是多少?画出其指令格式并

22、说明各字段的含义?义?(2)若存储字长不变,可采用什么方法直接访问容)若存储字长不变,可采用什么方法直接访问容量为量为16MB的主存?的主存?例例 7.6 某模型机共有某模型机共有64种操作,操作码位数固定,且种操作,操作码位数固定,且具有以下特点具有以下特点 (1)采用一地址或二地址格式)采用一地址或二地址格式 (2)有寄存器寻址、直接寻址和相对寻址(位移量)有寄存器寻址、直接寻址和相对寻址(位移量为为-128+127)三种寻址方式。)三种寻址方式。 (3)有)有16个通用寄存器,算术运算和逻辑运算的操个通用寄存器,算术运算和逻辑运算的操作数均在寄存器中,结果也在寄存器中。作数均在寄存器中,

23、结果也在寄存器中。 (4)取数)取数/存数指令在寄存器和存储器之间传送数据。存数指令在寄存器和存储器之间传送数据。 (5)存储器容量为)存储器容量为1MB,按字节编址。,按字节编址。 要求设计算逻指令,取数要求设计算逻指令,取数/存数指令和相对转移指令存数指令和相对转移指令的格式,并简述理由。的格式,并简述理由。例例7.7 设某机共能完成设某机共能完成110种操作,种操作,CPU有有8个通用寄个通用寄存器(存器(16位),主存容量为位),主存容量为4M字,采用寄存器字,采用寄存器-存储存储器型指令。器型指令。(1)欲使指令可直接访问主存的任一地址,指令字)欲使指令可直接访问主存的任一地址,指令

24、字长应取多少为,画出指令格式。长应取多少为,画出指令格式。 (2)若在上述设计的指令字中设置一寻址特征位)若在上述设计的指令字中设置一寻址特征位X,且且X=1表示某个寄存器作基址寄存器,画出指令格式。表示某个寄存器作基址寄存器,画出指令格式。试问基址寻址可否访问主存的任一单元?提出一种试问基址寻址可否访问主存的任一单元?提出一种方案可以访问主存任一位置。方案可以访问主存任一位置。 (3)若主存容量扩大到)若主存容量扩大到4G字,且存储字长等于指字,且存储字长等于指令字长,则在不改变上述硬件结构的前提下,可采令字长,则在不改变上述硬件结构的前提下,可采用什么方法使指令可访问存储器的任一位置。用什么方法使指令可访问存储器的任一位置。二、二、RISC RISC 的主要特征的主要特征 选用使用频度较高的一些选用使用频度较高的一些 简单指令简单指令, 复杂指令的功

温馨提示

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

评论

0/150

提交评论