指令系统复习_第1页
指令系统复习_第2页
指令系统复习_第3页
指令系统复习_第4页
指令系统复习_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、四、指令系统四、指令系统(一)指令格式(一)指令格式1.指令基本格式指令基本格式 操作码字段操作码字段 地址码字段地址码字段操作码操作码 操作码反映机器做什么操作。操作码反映机器做什么操作。 操作码所占的二进制位数决定了一台计算机所能允许的指令条数。操作码所占的二进制位数决定了一台计算机所能允许的指令条数。 例如,操作码占用六位二进制码时,这台计算机最多允许有:例如,操作码占用六位二进制码时,这台计算机最多允许有: 2664 条指令条指令 操作码分两种:操作码分两种: 长度固定(固定长度操作码)长度固定(固定长度操作码) 格式如上图所示格式如上图所示 操作码集中放在指令字的一个字段中,操作码集

2、中放在指令字的一个字段中,便于硬件设计,指令译便于硬件设计,指令译码时间短;用于指令字长较长的情况、大中型、超小型、码时间短;用于指令字长较长的情况、大中型、超小型、RISC中。中。 长度可变(可变长度操作码)长度可变(可变长度操作码) 操作码分散在指令字的不同字段中,操作码分散在指令字的不同字段中,有利于压缩程序中操作码有利于压缩程序中操作码的平均长度;增加指令译码及分析难度,使控制器设计复杂;在字的平均长度;增加指令译码及分析难度,使控制器设计复杂;在字长较短的微型机中被广泛应用。长较短的微型机中被广泛应用。(2) (2) 地址码地址码 指令中的地址码用来指出该指令的指令中的地址码用来指出

3、该指令的源操作数地址源操作数地址( (一个或两个一个或两个) )、 结果地址结果地址及及下一条指令的地址下一条指令的地址。 这里的地址可以是这里的地址可以是主存地址主存地址,也可以是,也可以是寄存器地址寄存器地址,甚至可以是,甚至可以是I/OI/O设备的地址设备的地址。 四地址四地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作数地址第一操作数地址A2 第二操作数地址第二操作数地址A3 结果的地址结果的地址A4 下一条指令地址下一条指令地址(A1) OP (A2) A34 次访存次访存 ? (指地址字段均为(指地址字段均为 主存地址主存地址的情况:取指令一次,取操作数的情况:取指

4、令一次,取操作数两次,存结果一次)两次,存结果一次)直接寻址范围直接寻址范围 26 = 64设指令字长为设指令字长为 32 位位操作码固定为操作码固定为 8 位位若用若用PC代替代替A43地址指令地址指令注:此种格式现已不用注:此种格式现已不用 三地址三地址8 8 8 8 OP A1 A2 A3(A1) OP (A2) A34 次访存次访存 ? 同上同上直接寻址范围直接寻址范围 28 = 256二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 次访存次访存 ? 同上同上一地址一地址 零地址零地址OP A18 24 无地址码无地址码(A

5、CC) OP (A1) ACC2 次访存次访存 ?(取指一次,?(取指一次, 取操作数一次)取操作数一次)直接寻址范围直接寻址范围 212 = 4 K直接寻址范围直接寻址范围 224 = 16 M NOP、HLT指令:指令:无地址码无地址码RET、IRET指令:指令:操作数地址是隐含(隐操作数地址是隐含(隐 含在堆栈指针中)。含在堆栈指针中)。注:现常用此几种格式,尤其是二地址、一地址指令。注:现常用此几种格式,尤其是二地址、一地址指令。2.扩展操作码技术扩展操作码技术OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A31111111111

6、11000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码最多最多15条三地址指令条三地址指令最多最多15条二地址指令条二地址指令最多最多15条一地址指令条一地址指令16条零地址指令条零地址指令初始初始OP、A1、A2、A3各占各占4位位操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加注:扩展操作码指令格式注:扩展操作码指令格式扩展方法不惟一,扩展

7、方法不惟一,如:如:三地址指令操作码三地址指令操作码每减少一种可最多构每减少一种可最多构成成24 种二地址指令种二地址指令二地址指令操作码二地址指令操作码每减少一种可最多构每减少一种可最多构成成24 种一地址指令种一地址指令24 的的 4 指的是要扩指的是要扩展成操作码的地址展成操作码的地址码字段的长度码字段的长度3.指令字长指令字长 指令字的长度取决于操作码的长度、操作数地址的长度和操作数指令字的长度取决于操作码的长度、操作数地址的长度和操作数地址的个数。地址的个数。为了充分利用存储空间,为了充分利用存储空间,指令字的长度也定为字节长指令字的长度也定为字节长度的整数倍度的整数倍。早期计算机,

8、指令字长早期计算机,指令字长 = 机器字长机器字长= 存储字长存储字长(2) 指令字长指令字长可变:可变:(1) 指令字长指令字长固定:固定:现代计算机,指令字长可变,按字节的倍数变化现代计算机,指令字长可变,按字节的倍数变化指令字长度等于机器字长度的指令,称为单字长指令;指令字长度等于机器字长度的指令,称为单字长指令;指令字长等于两个机器字长的指令,称为双字长指令;指令字长等于两个机器字长的指令,称为双字长指令;指令字长度只有半个机器字长度的指令,称为半字长指令。指令字长度只有半个机器字长度的指令,称为半字长指令。注:了解即可注:了解即可例例1: 假设指令字长为假设指令字长为16位,操作数的

9、地址码为位,操作数的地址码为6位,指令有零地址、位,指令有零地址、一地址、二地址三种格式。一地址、二地址三种格式。 (1)设操作码固定,若零地址指令有设操作码固定,若零地址指令有M种,一地址指令有种,一地址指令有N种,则二种,则二地址指令最多有几种地址指令最多有几种? (2)采用扩展操作码技术,二地址指令最多有几种?采用扩展操作码技术,二地址指令最多有几种? 解:解: (1) 根据操作数地址码为根据操作数地址码为6位,则二地址指令中操作码的位数为:位,则二地址指令中操作码的位数为: 16-2*64。 4位操作码可有位操作码可有16种操作。种操作。 由于操作码固定,则除去了零地址指令由于操作码固

10、定,则除去了零地址指令M种,一地址指令种,一地址指令N种,剩种,剩下二地址指令最多有:下二地址指令最多有:16-M-N种。种。 000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000000001111110(2) 采用扩展操作码技术,操作码位数可采用扩展操作码技术,操作码位数可随地址数的减少而增加。随地址数的减少而增加。 对于二地址指令,对于二地址指令,4位操作码,共位操作码,共16种编码,去掉一种编码种编码,去掉一种编码(如如1111)用于一地用于一地址指令扩展,最多二地址指令可有址指令扩展,最多二地址指令可有15种种操作。操

11、作。(4) 采用扩展操作码技术,若二地址指令有采用扩展操作码技术,若二地址指令有P条,零地址指令有条,零地址指令有Q条,条,则一地址指令最多有几种则一地址指令最多有几种?000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A31111111111110000000000011111106位位 6位位解:解:1) 二地址指令共二地址指令共24 条,每减少一种,条,每减少一种,可扩展一地址指令可扩展一地址指令 26 条,故可扩展一地址条,故可扩展一地址指令指令: (24 P)26 条;条; 2) 一地址指令共一地址指令共 (24 P)26 条,每减少条,每减少一条可扩展

12、一条可扩展 26 条零地址指令,条零地址指令, 设一地址指令共设一地址指令共X种,种,则,零地址指令:则,零地址指令: Q = ( (24 P)26 X) 26 X = (24 P)26 Q2-6 解:二地址指令可扩展一地址指令解:二地址指令可扩展一地址指令: (24 P)26 一地址指令可扩展零地址指令一地址指令可扩展零地址指令: ( (24 P)26 Q ) 26 (3) 采用扩展操作码技术,若二地址指令有采用扩展操作码技术,若二地址指令有P条,一地址指令有条,一地址指令有Q条,条,则零地址指令最多有几种则零地址指令最多有几种?(二)指令的寻址方式(二)指令的寻址方式 存储器既可以存放数据

13、又可以存放指令。因此当某个操作数或存储器既可以存放数据又可以存放指令。因此当某个操作数或某条指令存放在某个存储单元时,其某条指令存放在某个存储单元时,其存储单元的编号存储单元的编号,就是该操,就是该操作数或指令在作数或指令在存储器中的地址存储器中的地址。 寻址方式寻址方式 确定确定 本条指令本条指令 的的 操作数地址操作数地址 (数据寻址)(数据寻址) 下一条下一条 欲执行欲执行 指令指令 的的 指令地址指令地址 (指令寻址)(指令寻址) 寻址方式寻址方式 分分 指令寻址指令寻址 和和 数据寻址。数据寻址。1. 指令寻址指令寻址顺序顺序( PC ) + 1 PC跳跃跳跃由转移指令实现由转移指令

14、实现LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令顺序寻址顺序寻址1顺序寻址顺序寻址2顺序寻址顺序寻址3跳跃寻址跳跃寻址7顺序寻址顺序寻址8通过程序计数器通过程序计数器PC加加1,自,自动形成下一条指令的地址。动形成下一条指令的地址。2. 数据寻址数据寻址 形式地址:形式地址: 指令字中的地址指令字中的地址 有效地址:有效地址: 操作数的真实地址操作数的真实地址 (用(用EA表示),表示),由寻址方式和形式地址共同确定。由寻址方

15、式和形式地址共同确定。约定约定 指令字长指令字长 = 存储字长存储字长 = 机器字长机器字长(1) 立即寻址立即寻址 指令执行阶段不访存指令执行阶段不访存 A 的位数限制了立即数的范围的位数限制了立即数的范围形式地址形式地址 A操作码操作码寻址特征寻址特征OP # A立即寻址特征立即寻址特征立即数立即数 可正可负,补码表示可正可负,补码表示形式地址形式地址 A 就是操作数就是操作数以一地址以一地址指令为例指令为例#号是立即寻址号是立即寻址特征的标记特征的标记 下面,要注意指令格式中有效地址下面,要注意指令格式中有效地址EA的表示的表示(2) 直接寻址直接寻址EA = A操作数操作数主存主存寻址

16、特征寻址特征OPAA 执行阶段访问一次存储器执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出有效地址由形式地址直接给出(3) 隐含寻址隐含寻址操作数地址隐含在操作码中操作数地址隐含在操作码中ADDA操作数操作数主存主存寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在 ACC 中中如如 8086MUL 指令指令被乘数隐含在被乘数隐含在 AX(16位)或位)或 AL(8位)中位)中MOVS 指令指令源操作数的地址隐含在源操作数的地址隐

17、含在 SI 中中目的操作数的地址隐含在目的操作数的地址隐含在 DI 中中 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长隐含在隐含在 ACC 中的操作数中的操作数(4) 间接寻址间接寻址EA =(A)有效地址由形式地址间接提供有效地址由形式地址间接提供OPA寻址特征寻址特征AEA主存主存EAA1EA A1主存主存 EA10 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围,若存储字可扩大寻址范围,若存储字 长长16位,则寻址范围可达位,则寻址范围可达216 便于编制程序便于编制程序OPA寻址特征寻址特征A一次间址一次间址多次间址多次间址操作数操作数操

18、作数操作数 多次访存:多次访存: 存储字首位是多次间址标存储字首位是多次间址标志,故寻址范围稍小,若存志,故寻址范围稍小,若存储字长储字长16位,则寻址范围为位,则寻址范围为215 两次访存,指令执行时间延长两次访存,指令执行时间延长(5) 寄存器寻址寄存器寻址EA = Ri 执行阶段不访存,只访问寄存器,执行速度快执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征寻址特征 地址段只指明寄存器编号,寄存器个数有限,编码短,可地址段只指明寄存器编号,寄存器个数有限,编码短,可 缩短指令字长缩短指令字长操作数操作数R0RiRn寄存器寄存器有效地址即为寄存器编号有效地址即为寄存器编号EA =

19、( Ri )(6) 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,有效地址在寄存器中, 操作数在存储器中,执行阶段访存一次操作数在存储器中,执行阶段访存一次操作数操作数主存主存OPRi寻址特征寻址特征 便于编制循环程序便于编制循环程序地址地址R0RiRn寄存器寄存器有效地址在寄存器中有效地址在寄存器中 与间接寻址方式比较,执行阶段访存一次,寻址范围与寄存器与间接寻址方式比较,执行阶段访存一次,寻址范围与寄存器 长度有关。长度有关。(7) 基址寻址基址寻址 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器EA = ( BR ) + ABR 为基址寄存器(隐式的)为基址寄存器(隐式的)OP

20、A操作数操作数主存主存寻址特征寻址特征ALUBR 可扩大寻址范围可扩大寻址范围 有利于多道程序有利于多道程序 BR 内容由操作系统或管理程序确定内容由操作系统或管理程序确定 在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址 A 可变可变 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器操作数操作数主存主存寻址特征寻址特征ALUOPR0AR0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器通用寄存器R0Rn-1R1 基址寄存器的内容由操作系统确定基址寄存器的内容由操作系统确定 在程序的执行过程中

21、在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变(8) 变址寻址变址寻址EA = ( IX ) +AOPA操作数操作数主存主存寻址特征寻址特征ALUIX 可扩大寻址范围可扩大寻址范围 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 IX 为变址寄存器(专用)为变址寄存器(专用) 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器 采用专用寄存器作变址寄存器采用专用寄存器作变址寄存器操作数操作数主存主存寻址特征寻址特征ALUOPR1AR1

22、作变址寄存器作变址寄存器通用寄存器通用寄存器R0Rn-1R1 采用通用寄存器作变址寄存器采用通用寄存器作变址寄存器 由用户指定哪个通用寄存器作为变址寄存器由用户指定哪个通用寄存器作为变址寄存器 基址寄存器的内容由用户确定基址寄存器的内容由用户确定 在程序的执行过程中在程序的执行过程中 R1 内容可变,形式地址内容可变,形式地址 A 不变不变变址和基址寻址的异同:变址和基址寻址的异同: 同:可扩大寻址范围;有效地址形成过程形似。同:可扩大寻址范围;有效地址形成过程形似。 异:应用场合不同异:应用场合不同 基址寻址主要用于为程序或数据分配存储空间,故基址寄基址寻址主要用于为程序或数据分配存储空间,

23、故基址寄存器的内容通常有操作系统或管理程序确定,在程序的执行过程存器的内容通常有操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的中其值是不可变的,而指令字中的A是可变的;是可变的; 变址寻址,变址寄存器的内容由用户设定,在程序执行过变址寻址,变址寄存器的内容由用户设定,在程序执行过程中其值可变,而指令字中的程中其值可变,而指令字中的A不可变。主要用于处理数组、字不可变。主要用于处理数组、字符串等成批数据。符串等成批数据。(9) 相对寻址相对寻址 EA = ( PC ) + A (PC是当前指令地址是当前指令地址 )A 是操作数相对于当前指令的位移量(可正可负,补码)是操作

24、数相对于当前指令的位移量(可正可负,补码) A 的位数决定操作数的寻址范围的位数决定操作数的寻址范围 程序浮动程序浮动广泛用于转移指令广泛用于转移指令操作数操作数寻址特征寻址特征ALUOPA相对距离相对距离 A1000PC 主存主存1000AOP 若若A为为8位,则指令的寻址位,则指令的寻址范围为:范围为:(PC)+127 (PC)-128(10) 堆栈寻址堆栈寻址堆栈堆栈硬堆栈硬堆栈软堆栈软堆栈多个寄存器多个寄存器指定的主存空间指定的主存空间先进后出先进后出(一个入出口)(一个入出口)栈顶地址栈顶地址 由由 SP 指出指出 11FFFH +12000H进栈进栈 (SP) 1 SP出栈出栈 (

25、SP)+ 1 SP栈顶栈顶栈底栈底2000 HSP2000H1FFF HSP1FFFH栈顶栈顶栈底栈底进栈进栈出栈出栈 1FFF H栈顶栈顶 2000 H栈顶栈顶 可视为隐含寻址,因为操作数地址隐含在堆栈指针可视为隐含寻址,因为操作数地址隐含在堆栈指针SP中;中; 也可视为寄存器间接寻址(因为也可视为寄存器间接寻址(因为SP可视为寄存器)。可视为寄存器)。例例2:设相对寻址的转移指令占两个字节,第一字节是操作码,第二字:设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量,用补码表示。每当节是相对位移量,用补码表示。每当CPU从存储器取出一个字节时,从存储器取出一个字节时,即

26、自动完成即自动完成(PC)+1PC。 (1)设当前设当前PC值为值为3000H,试问转移后的目标地址范围是什么,试问转移后的目标地址范围是什么? (2)若当前若当前PC值为值为2000H,要求转移到,要求转移到201BH,则转移指令第二字节,则转移指令第二字节的内容是什么的内容是什么? (3)若当前若当前PC值为值为2000H,指令,指令 JMP *-9 的第二字节内容为多少?的第二字节内容为多少? (* 为相对寻址特征)为相对寻址特征)解:解:(1) 转移地址为:转移地址为:(PC)+ 指令中的地址码部分指令中的地址码部分 指令中给出的转移位移量为:指令中给出的转移位移量为:-128 +12

27、7 (- 80H +7FH补码表示)补码表示) PC当前值为当前值为3000H,且,且CPU取出该指令后,修改为取出该指令后,修改为3002H, 因此最终的转移目标地址范围为因此最终的转移目标地址范围为 3081H2F82H, 即即 3002H+7FH 3002H-80H(2) 若若PC当前值为当前值为2000H,取出该指令后,取出该指令后PC值为值为2002H,故转移指令,故转移指令 第二字节应为:第二字节应为: 20l BH - 2002H19H。若指令占若指令占3个字节呢?个字节呢? (3) 根据根据 JMP *-9,要求转移到,要求转移到 2000H-9=1FF7H 处,因取出指令后处

28、,因取出指令后PC已到已到2002,故指令第二字节内容为,故指令第二字节内容为 F5H(-11的补码表示)。的补码表示)。例例4: 某机主存容量为某机主存容量为4M 16位,且存储字长等于指令字长,若该位,且存储字长等于指令字长,若该机指令系统能完成机指令系统能完成97种操作,操作码位数固定,且具有直接、间接、种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式。变址、基址、相对、立即等六种寻址方式。 (1)画出一地址指令格式并指出各字段的作用。画出一地址指令格式并指出各字段的作用。 (2)该指令直接寻址的最大范围。该指令直接寻址的最大范围。 (3)一次间址和多次间址

29、的寻址范围。一次间址和多次间址的寻址范围。 (4)立即数的范围立即数的范围(十进制数表示十进制数表示)。 (5)相对寻址的位移量相对寻址的位移量(十进制数表示十进制数表示)。 (6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?哪哪一种便于用户编制处理数组问题的程序一种便于用户编制处理数组问题的程序?哪一种便于程序浮动哪一种便于程序浮动?为什么?为什么? (7)如何修改指令格式使指令的直接寻址范围可扩大到如何修改指令格式使指令的直接寻址范围可扩大到4M? (8)为使一条转移指令能转移到主存的任一位置,可采取什么措施为使一条转移指令能转

30、移到主存的任一位置,可采取什么措施?请简要说明。请简要说明。解:解: (1) 一地址指令格式一地址指令格式 OP 操作码字段,共操作码字段,共7位,可反映位,可反映97种操作;种操作; M 寻址方式特征字段,共寻址方式特征字段,共3位,可反映位,可反映6种寻址方式;种寻址方式; A形式地址字段,共形式地址字段,共16-7-36位。位。 (2)直接寻址的最大范围为直接寻址的最大范围为2664 (3)由于存储字长为由于存储字长为16位,故一次间址的寻址范围为位,故一次间址的寻址范围为216。 若多次间址,需用存储字的最高若多次间址,需用存储字的最高位来区别是否继续间接寻址,故位来区别是否继续间接寻

31、址,故 寻址范围为寻址范围为215。 (4)立即数的范围是立即数的范围是 -32 +31 (有符号数有符号数) 或或 063 (无符号数无符号数)。 (5)相对寻址的位移量为相对寻址的位移量为 -32 +31。 15 9 8 6 5 0(6)上述六种寻址方式中,上述六种寻址方式中, 因立即数内指令直接给出,故立即寻址的指令执行时间最短;因立即数内指令直接给出,故立即寻址的指令执行时间最短; 间接寻址在指令的执行阶段要多次访存间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,一次间接寻址要两次访存,多次间接寻址要多次访存多次间接寻址要多次访存),故执行时间最长;,故执行时间最长; 变址

32、寻址由于变址寄存器的内容由用户给定,而且在程序的执行变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。于用户编制处理数组问题的程序。 相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。与直接寻址相比,更有利于程序浮动。(7)若指令的格式改为双字指令。若指令的格式改为双字指令。 其中其中OP 7位,位,M 3位,位,A1 6位,位,A2 16位

33、,即指令的地址字段共位,即指令的地址字段共16+6=22位,位,则指令的直接寻址范围可扩大到则指令的直接寻址范围可扩大到4M。 15 9 8 6 5 0(8)为使一条转移指令能转移到主存的任一位置,寻址范围须达到为使一条转移指令能转移到主存的任一位置,寻址范围须达到4M,除了采用除了采用(7)所示的格式外,所示的格式外, 还可配置还可配置22位的基址寄存器位的基址寄存器 或或 22位的变址寄存器,使位的变址寄存器,使 EA=(BR)+A (BR为为22位的基址寄存器位的基址寄存器) 或或 EA=(IX)+A (IX为为22位的变址寄存器位的变址寄存器), 便可访问便可访问4M存储空间。存储空间

34、。 还可以通过还可以通过16位的基址寄存器左移位的基址寄存器左移6位再和形式地址位再和形式地址A相加,也可相加,也可达到同样的效果。达到同样的效果。例例8某机指令格式如下图所示:某机指令格式如下图所示: 图中图中I为间址特征位为间址特征位 (I=0,直接寻址;,直接寻址;I=1,一次间接寻址,一次间接寻址)。假设存储器部分单元有以下内容:假设存储器部分单元有以下内容:指出下列机器指令指出下列机器指令(十六进制表示十六进制表示)的有效地址。的有效地址。 (1)D7 (2) DF (3) DE (4) D2OPIA0 3 4 5 7地址号(十六进制)地址号(十六进制)000102030405060

35、7内容(十六进制)内容(十六进制)015E9D74A41504A0解:解:(1) 1101 0111 I=0,直接寻址,有效地址为:,直接寻址,有效地址为:111B(7H) (2) 1101 1111 I=1,间接寻址,形式地址为:,间接寻址,形式地址为:111B(7H) 有效地址为:有效地址为:A0H (3) 1101 1110 I=1,间接寻址,间接寻址, A=06H,EA=04H (4) 1101 0010 I=0,直接寻址,直接寻址,EA=02H例例9某机指令格式如下图所示。图中某机指令格式如下图所示。图中x为寻址特征位,且为寻址特征位,且 当当x0时,不变址;时,不变址; x1时,用

36、变址寄存器时,用变址寄存器x1,进行变址,进行变址 x2时,用变址寄存器时,用变址寄存器x2进行变址进行变址 x3时,相对寻址。时,相对寻址。 设设(PC)=1234H,x1=0037H,x2=1122H,确定下列指令的有效地,确定下列指令的有效地址址(指令和地址均用十六进制表示指令和地址均用十六进制表示): (1)4420; (2)2244; (3)1322; (4)3521。OPXA0 5 6 7 8 15解:解:(1) 0100 0100 0010 0000 X=0,不变址,有效地址为:,不变址,有效地址为:20H (2) 0010 0010 0100 0100 X=2,用,用X2进行变

37、址,有效地址为:进行变址,有效地址为: (x2) + A = 1122H + 44H = 1166H (3) 0001 0011 0010 0010 X= 3,相对寻址,有效地址为:,相对寻址,有效地址为: (PC)+ A = 1234H + 22H = 1257H(4) 例例10. 一种一地址指令的格式如下所示。一种一地址指令的格式如下所示。 其中其中I为间址特征,为间址特征,X为寻址为寻址模式,模式,A为形式地址。设为形式地址。设R为通用寄存器,也可作为变址寄存器。在为通用寄存器,也可作为变址寄存器。在表中填入适当的寻址方式名称。表中填入适当的寻址方式名称。OPIXA直接寻址直接寻址相对寻

38、址相对寻址变址寻址变址寻址寄存器直接寻址寄存器直接寻址间接寻址间接寻址先相对后先相对后间接间接寻址寻址先变址再先变址再间接间接寻址寻址寄存器间接寻址寄存器间接寻址43. (11分分) 某计算机字长为某计算机字长为16位,主存地址空间大小为位,主存地址空间大小为128KB,按字,按字编址,采用单字长指令格式,指令各字段定义如下:编址,采用单字长指令格式,指令各字段定义如下: OP Ms Rs Md Rd 15 12 11 6 5 0源操作数源操作数目的操作数目的操作数 转移指令采用相对寻址方式,相对偏移量用补码表示,寻转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义如下:址方式定义如

39、下:Ms/Md寻址方式寻址方式助记符助记符含义含义000B寄存器直接寄存器直接Rn操作数操作数=(Rn)001B寄存器间接寄存器间接(Rn)操作数操作数=(Rn)010B寄存器间接、自增寄存器间接、自增(Rn)+操作数操作数=(Rn),(Rn)+1Rn011B相对相对D(Rn)转移目标地址转移目标地址=(PC)+(Rn)注:(注:(x)表示存储器地址)表示存储器地址x或寄存器或寄存器x的内容的内容 请回答下列问题:请回答下列问题:(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(寄存器?存储器地址寄存器

40、(MAR)和存储器数据寄存器()和存储器数据寄存器(MDR)至少各需多少位?至少各需多少位?(2)转移指令的目标地址范围是多少?)转移指令的目标地址范围是多少?(3)若操作码)若操作码0010B表示加法操作(助记符为表示加法操作(助记符为add),寄存器),寄存器R4和和R5的编号分别为的编号分别为100B和和101B,R4的内容为的内容为1234H,R5的内容为的内容为5678H,地址,地址1234H中的内容为中的内容为5678H,地址,地址5678H中的内容为中的内容为1234H,则汇编语句则汇编语句“add (R4), (R5)+”(逗号前为源操作数,逗号后为目的(逗号前为源操作数,逗号

41、后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?哪些寄存器和存储单元的内容会改变?改变后的内容是什么?该指令系统最多可有该指令系统最多可有 24= 16 条指令条指令 该计算机最多有该计算机最多有 23= 8 个通用寄存器个通用寄存器 存储器地址寄存器存储器地址寄存器 MAR 至少至少 16位(位(216= 64K,按字寻址),按字寻址) 存储器数据寄存器存储器数据寄存器 MDR至少至少16位(机器字长为位(机器字长为16位)位)(2) PC:16位,通用寄存器

42、:位,通用寄存器:16位位 转移指令的目标地址范围:转移指令的目标地址范围:0216-1 = 0 FFFFH(3) 汇编语句汇编语句“add (R4), (R5)+”对应的机器码:对应的机器码: 0010 001 100 010 101B = 2315H 哪些寄存器和存储单元的内容会改变哪些寄存器和存储单元的内容会改变: 寄存器寄存器R5,存储单元,存储单元 5678H 内容会改变;内容会改变; R5=5679H R5 = 5678H+1 = 5679H (5678H)= 68ACH (R4)+(R5)=1234H+5678H = 68ACH 练习一、唐朔飞习题集练习一、唐朔飞习题集(一)选择

43、(一)选择1指令系统中采用不同寻址方式的目的主要是指令系统中采用不同寻址方式的目的主要是_ A可降低指令译码难度可降低指令译码难度 B缩短指令字长,扩大寻址空间,提高编程灵活性缩短指令字长,扩大寻址空间,提高编程灵活性 C实现程序控制实现程序控制答案:答案:B2. 零地址运算指令在指令格式中不给出操作数地址,它的操作数来自零地址运算指令在指令格式中不给出操作数地址,它的操作数来自_ A. 立即数和栈顶立即数和栈顶 B. 暂存器暂存器 C栈顶和次栈顶栈顶和次栈顶答案:答案:C3. 在一地址指令中,为完成两个数的算术运算,除地址译码指明的一在一地址指令中,为完成两个数的算术运算,除地址译码指明的一

44、个操作数外,另一个操作数常采用个操作数外,另一个操作数常采用_ A. 堆栈寻址方式堆栈寻址方式 B立即寻地址方式立即寻地址方式 C隐含寻址方式隐含寻址方式答案:答案:C4二地址指令中,操作数的物理位置可安排在二地址指令中,操作数的物理位置可安排在_。(本题是多项选择本题是多项选择 A两个主存单元两个主存单元 B两个寄存器两个寄存器 C一个主存单元和一个寄存器一个主存单元和一个寄存器 D栈顶和次栈顶栈顶和次栈顶答案:答案:A B C6寄存器间接寻址方式中,操作数在寄存器间接寻址方式中,操作数在_中。中。 A. 通用寄存器通用寄存器 B. 堆栈堆栈 C. 主存单元主存单元答案:答案:C7变址寻址方

45、式中,操作数的有效地址是变址寻址方式中,操作数的有效地址是_ A基址寄存器内容加上形式地址基址寄存器内容加上形式地址(位移量位移量) B程序计数器内容加上形式地址程序计数器内容加上形式地址 C变址寄存器内容加上形式地址变址寄存器内容加上形式地址答案:答案:C9采用基址寻址可扩大寻址范围,且采用基址寻址可扩大寻址范围,且_ 。 A基址寄存器内容由用户确定,在程序执行过程中不可变基址寄存器内容由用户确定,在程序执行过程中不可变 B基址寄存器内容由操作系统确定,在程序执行过程中不可变基址寄存器内容由操作系统确定,在程序执行过程中不可变 C基址寄存器内容由操作系统确定,在程序执行过程中可变基址寄存器内

46、容由操作系统确定,在程序执行过程中可变答案:答案:B10采用变址寻址可扩大寻址范围,且采用变址寻址可扩大寻址范围,且_。 A变址寄存器内容由用户确定,在程序执行过程中不可变变址寄存器内容由用户确定,在程序执行过程中不可变 B变址寄存器内容由操作系统确定,在程序执行过程中可变变址寄存器内容由操作系统确定,在程序执行过程中可变 C变址寄存器内容由用户确定,在程序执行过程中可变变址寄存器内容由用户确定,在程序执行过程中可变答案:答案:C12堆栈寻址方式中,设堆栈寻址方式中,设A为累加器,为累加器,SP为堆栈指示器,为堆栈指示器,Msp为为SP指指示的栈顶单元。如果进栈操作的动作顺序是示的栈顶单元。如

47、果进栈操作的动作顺序是(A)Msp,(SP)-1 SP,那么出栈操作的动作顺序应为那么出栈操作的动作顺序应为_ A. (Msp) (A), (SP)+l SP B (SP)+1 SP,(Msp) A C. (SP)-1 SP, (Msp) A答案:答案:B入栈操作和出栈操作入栈操作和出栈操作是镜像的操作,栈指是镜像的操作,栈指针是相反的操作针是相反的操作14设变址寄存器为设变址寄存器为X,形式地址为,形式地址为D,某机具有先变址再间址的寻,某机具有先变址再间址的寻址方式则这种寻址方式的有效地址为址方式则这种寻址方式的有效地址为_。 A. EA= (x) + D B. EA = (x) + (D

48、) C. EA(x) + D)答案:答案:C13堆栈寻址方式中,设堆栈寻址方式中,设A为累加器,为累加器,SP为堆栈指示器,为堆栈指示器,Msp为为SP指示指示的栈顶单元。如果进栈操作的动作顺序是的栈顶单元。如果进栈操作的动作顺序是 (SP)-1 SP, (A)Msp,那,那么出栈操作的动作顺序应为么出栈操作的动作顺序应为_ A. (Msp) (A), (SP)+l SP B (SP)+1 SP,(Msp) A C. (SP)-1 SP, (Msp) A答案:答案:A各寻址方式可以组合使用各寻址方式可以组合使用15设变址寄存器为设变址寄存器为X,形式地址为,形式地址为D,某机具有先间址后变址的

49、寻,某机具有先间址后变址的寻址方式,则这种寻址方式的有效地址为址方式,则这种寻址方式的有效地址为_ A. EA= (x) + D B. EA = (x) + (D) C. EA(x) + D)答案:答案:B18运算型指令的寻址和转移型指令的寻址不同点在于运算型指令的寻址和转移型指令的寻址不同点在于_ A. 前者取操作数,后者决定程序转移地址前者取操作数,后者决定程序转移地址 B前者是短指令,后者是长指令前者是短指令,后者是长指令 C后者是短指令,前者是长指令后者是短指令,前者是长指令答案:答案:A19. 指令的寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现指令的寻址方式有顺序和跳跃两种,采

50、用跳跃寻址方式可以实现 A. 程序浮动程序浮动 B程序的无条件转移和浮动程序的无条件转移和浮动 C程序的条件转移和无条件转移程序的条件转移和无条件转移答案:答案:C程序浮动是数据寻址方式中程序浮动是数据寻址方式中相对寻址方式的特点。相对寻址方式的特点。23. 设相对寻址的转移指令占两个字节,第一字节是操作码,第二字设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量节是相对位移量(可正可负可正可负),则转移的地址范围是,则转移的地址范围是_。 A. 255 B256 C. 254答案:答案:B 补码表示:补码表示:-128 0 127 :25621设相对寻址的转移指令占两个字

51、节,第一字节是操作码,第二设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量字节是相对位移量(用补码表示用补码表示),若,若CPU每当从存储器取出一个字节每当从存储器取出一个字节时,即自动完成时,即自动完成 (PC)+1PC,设当前,设当前PC的内容为的内容为2000H,要求转移,要求转移到到2008H地址,则该转移指令第二字节的内容应为地址,则该转移指令第二字节的内容应为_。 A08H B06H C. 0AH答案:答案:B 24直接、间接、立即三种方式指令执行速度,由快至慢的排序是直接、间接、立即三种方式指令执行速度,由快至慢的排序是_答案:立即、直接、间接答案:立即、直

52、接、间接26为了缩短指令中地址码的位数,应采用为了缩短指令中地址码的位数,应采用_寻址。寻址。 A立即数立即数 B寄存器寄存器 C直接直接答案:答案:B28在指令格式设计中,采用扩展操作码的目的是在指令格式设计中,采用扩展操作码的目的是_。 A增加指令长度增加指令长度 B增加寻址空间增加寻址空间 C增加指令数量增加指令数量答案:答案:C29设机器字长为设机器字长为16位,存储器按字编址,对于单字长指令而言,读位,存储器按字编址,对于单字长指令而言,读取该指令后,取该指令后,PC值自动加值自动加_ A 1 B2 C4答案:答案:A指令字长等于存储字长,故,指令字长等于存储字长,故,一个存储单元可

53、存一条指令,一个存储单元可存一条指令,读一次存储器即可读取一条指读一次存储器即可读取一条指令,故在此令,故在此PC+1。30设机器字长为设机器字长为16位,存储器按字节编址,位,存储器按字节编址,CPU读取一条单字长指读取一条单字长指令后,令后,PC值自动加值自动加_ A 1 B2 C4答案:答案:B在此需读两个存储单元才能取在此需读两个存储单元才能取出一条指令,故出一条指令,故PC+2 31 设机器字长为设机器字长为16位,存储器按字节编址,设位,存储器按字节编址,设PC当前值为当前值为1000H,当读取一条双字长指令后,当读取一条双字长指令后,PC值为值为_ A. 1001H B1002H

54、 C1004H答案:答案:C34转移指令的主要操作是转移指令的主要操作是 _。 A改变程序计数器改变程序计数器PC的值的值 B改变地址寄存器的值改变地址寄存器的值 C改变程序计数器的值和堆栈指针改变程序计数器的值和堆栈指针SP的值的值答案:答案:A35. 子程序调用指令完整的功能是子程序调用指令完整的功能是_ A改变程序计数器改变程序计数器PC的值的值 B. 改变地址寄存器的值改变地址寄存器的值 C改变程序计数器的值和堆栈指针改变程序计数器的值和堆栈指针SP的值的值答案:答案:C38下列下列_是错误的。是错误的。 A为了充分利用存储器空间,指令的长度通常可取字节的整数倍为了充分利用存储器空间,

55、指令的长度通常可取字节的整数倍 B一地址指令是固定长度的指令一地址指令是固定长度的指令 C单字长指令可加快取指令的速度单字长指令可加快取指令的速度答案答案: B40在一地址格式的指令中,下列在一地址格式的指令中,下列_是正确的是正确的 A仅有一个操作数,其地址由指令的地址码提供仅有一个操作数,其地址由指令的地址码提供 D可能有一个操作数,也可能有两个操作数可能有一个操作数,也可能有两个操作数 C一定有两个操作数,另一个是隐含的一定有两个操作数,另一个是隐含的答案:答案:B41下列三种类型的指令,下列三种类型的指令,_执行时间最长。执行时间最长。 A. RR型型 B. RS型型 CSS型型答案:

56、答案:C46在下列寻址方式中,在下列寻址方式中,_寻址方式需要先计算,再访问主存。寻址方式需要先计算,再访问主存。 A立即立即 B变址变址 C. 间接间接答案:答案:BRR:寄存器:寄存器-寄存器寄存器RS:寄存器:寄存器-存储器存储器SS:存储器:存储器-存储器存储器 计算地址计算地址(二)综合(二)综合 5某机字长某机字长32位,位,CPU内有内有32个个32位的通用寄存器,设计一种能容位的通用寄存器,设计一种能容纳纳64种操作的指令系统,设指令字长等于机器字长。种操作的指令系统,设指令字长等于机器字长。 (1)如果主存可直接或间接寻址,采用寄存器如果主存可直接或间接寻址,采用寄存器存储器

57、型指令,能存储器型指令,能直接寻址的最大存储空间是多少直接寻址的最大存储空间是多少? 画出指令格式。画出指令格式。 (2)如果采用通用寄存器作为基址寄存器,则上述寄存器如果采用通用寄存器作为基址寄存器,则上述寄存器存储器存储器型指令的指令格式有何特点,画出指令格式并指出这类指令可访问型指令的指令格式有何特点,画出指令格式并指出这类指令可访问多大的存储空间多大的存储空间?解:解: (1) OP段:段:6位位 寻址模式:寻址模式:1位位 寄存器段:寄存器段:5位位 形式地址:形式地址:20位,能直接寻址的存储空间为位,能直接寻址的存储空间为220。OPIRA 6 1 5 20OPIRBA 6 1

58、5 5 15 增加增加B字段,用以指出哪个寄存器为基址寄存器。字段,用以指出哪个寄存器为基址寄存器。 因为通用寄存器为因为通用寄存器为32位,用它作基址寄存器后,有效地位,用它作基址寄存器后,有效地址等于基址寄存器内容加上形式地址,可得址等于基址寄存器内容加上形式地址,可得32垃的有效地址,垃的有效地址,故寻址范围可达故寻址范围可达232。26. 设机器字长为设机器字长为12位,若主存容量位,若主存容量64K*12位,为使一条位,为使一条12位长的转位长的转移指令能够转移到主存的任一单元,应选用何种寻址方式?说明理由。移指令能够转移到主存的任一单元,应选用何种寻址方式?说明理由。解:采用基址寻

59、址,将解:采用基址寻址,将12位的基址寄存器左移位的基址寄存器左移4位,形成位,形成16位位基地址,可寻址基地址,可寻址64K空间。空间。33. 一条双字长的取数指一条双字长的取数指令(令(LDA)存于存储器的)存于存储器的100和和101单元,其中第一单元,其中第一个字为操作码和寻址特征个字为操作码和寻址特征M,第二个字为形式地址。,第二个字为形式地址。假设假设PC当前值为当前值为100,变,变址寄存器址寄存器XR的内容为的内容为100,基址寄存器的内容为基址寄存器的内容为200,存储器各单元的内容如下存储器各单元的内容如下图所示。写出在下列寻址图所示。写出在下列寻址方式中,取数指令执行结方

60、式中,取数指令执行结束后,累加器束后,累加器AC的内容。的内容。 LDALDAM M300300 800800 700700400400500500 200200 600600100100101101102102300300400400401401402402500500800800寻址方式寻址方式 AC内容内容直接寻址直接寻址 立即寻址立即寻址 间接寻址间接寻址 相对寻址相对寻址 变址寻址变址寻址 基址寻址基址寻址 800300600500 700200【例例】某某16位机位机所使用的指令格式和寻址方式如下所示。所使用的指令格式和寻址方式如下所示。 该机有该机有两个两个20位基值寄存器,四个

温馨提示

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

评论

0/150

提交评论