第7章 指令系统_第1页
第7章 指令系统_第2页
第7章 指令系统_第3页
第7章 指令系统_第4页
第7章 指令系统_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、课程性质课程性质: 专业必修核心基础课程专业必修核心基础课程学分学分: 3考核形式考核形式: 闭卷考试闭卷考试 选用教材:选用教材: 唐朔飞,计算机组成原理(第2版),高等教育出版社,2008年。 参考教材参考教材: (1)蒋本珊编著,计算机组成原理学习指导与习题解析,清华大学出版社,2005年。 (2)白中英主编,计算机组成原理(第三版.网络版),科学出版社,2003年。 (3)俸远祯主编,计算机组成原理(修订本) ,电子工业出版社, 2003年。 (4) 蒋本珊计算机组成原理(第2版)北京:清华大学出版社,2008湖南商学院计算机与电子工程学院湖南商学院计算机与电子工程学院计算机组成原理与

2、汇编语言程序计算机组成原理与汇编语言程序教学课程组教学课程组第章第章 指指 令令 系系 统统7.1 机器指令机器指令 7.2 操作数类型和操作类型操作数类型和操作类型 7.3 寻址方式寻址方式 7.4 指令格式举例指令格式举例 7.5 RISC 技术技术 指令的长度:一条指令中所包含的位数,它取决指令的长度:一条指令中所包含的位数,它取决于操作码字段的长度、操作数(地址)的个数及长于操作码字段的长度、操作数(地址)的个数及长度。度。指令长度不一定与机器字长相等:指令长度不一定与机器字长相等:定长指令:定长指令:指令系统中,若所有指令的长度指令系统中,若所有指令的长度都是相等;都是相等;变长指令

3、:变长指令:指令的长度随指令功能而异。指令的长度随指令功能而异。7.1 机机 器器 指指 令令一、指令的一般格式一、指令的一般格式 操作码字段操作码字段 地址码字段地址码字段 指令系统中的每一条指令都有一个唯一确定的操作指令系统中的每一条指令都有一个唯一确定的操作码,指令不同,其操作码的编码也不同。希望用尽可码,指令不同,其操作码的编码也不同。希望用尽可能短的操作码字段来表达全部的指令。能短的操作码字段来表达全部的指令。l 指令操作码的编码可以分为指令操作码的编码可以分为: 操作码固定(规整型):操作码固定(规整型): 操作码部分定长编码操作码部分定长编码 操作码不固定(非规整型):操作码不固

4、定(非规整型):操作码部分变长编码操作码部分变长编码 l指令的操作码指令的操作码操作码操作码地址码地址码指令的基本格式指令的基本格式(1)规整型(定长编码)规整型(定长编码)l 操作码字段的位数和位置是固定的。操作码字段的位数和位置是固定的。假定:指令系统共有假定:指令系统共有m条指令,指令中操作码字条指令,指令中操作码字段的位数为段的位数为N 位,则有如下关系式:位,则有如下关系式: N log2 m定长编码有利于简化硬件设计、减少指令译码定长编码有利于简化硬件设计、减少指令译码的时间;的时间;存在冗余。存在冗余。F IBM 370机(字长机(字长32位)的指令可分为三种位)的指令可分为三种

5、 不不同的长度同的长度,不论指令的长度为多少位,其中操作码不论指令的长度为多少位,其中操作码字段一律都是字段一律都是8位。(冗余位。(冗余183/256)例 IBM 370 机的指令格式机的指令格式OPOPOPOPOPD2D1D1D2D2R1R1R1R2R2L1B1B2B2B2X2B1I28888844444444444881212121212RR型RX型RS型SI型SS型单字长指令单字长指令半字长指令半字长指令1个半字长指令个半字长指令(2)非规整型(变长码)非规整型(变长码)l 操作码字段的位数不固定,且分散设置在指令操作码字段的位数不固定,且分散设置在指令字的不同位置上。字的不同位置上。

6、 能有效的压缩程序中指令码字段的平均长度,能有效的压缩程序中指令码字段的平均长度,让高频指令的操作码较短;让高频指令的操作码较短; 操作码字段的位数和位置不固定将增加指令译操作码字段的位数和位置不固定将增加指令译码和分析的难度,使控制器的设计复杂化码和分析的难度,使控制器的设计复杂化。 例 PDP-11机(机(Digital Equipment Corp. 70年代生产的年代生产的字长字长16位的小型计算机)的指令分为单字长、两字长、位的小型计算机)的指令分为单字长、两字长、三字长三种,操作码字段占三字长三种,操作码字段占416位不等,可遍及整个位不等,可遍及整个指令长度;指令长度;F目前的微

7、型计算机也广泛采用。目前的微型计算机也广泛采用。7 PDP-11PDP-11机的指令格式机的指令格式OPRR846261316OPS844OPOPOPOPOPOP1616SDD1683DDXSS66666610单字长(16位)二字长(32位)三字长(48位)地址地址1地址2【例例】设某机器的指令长度为设某机器的指令长度为16位,操作码字段位,操作码字段为为4位,有三个位,有三个4位的地址码字段。如果按照位的地址码字段。如果按照规整规整型型编码的方法,编码的方法,4位操作码字段最多只能表示位操作码字段最多只能表示24 (16)条不同的)条不同的 (三地址)指令。(三地址)指令。 如采用非规整码(

8、不定长编码),则可编出如采用非规整码(不定长编码),则可编出61条条不同地址长度不同地址长度的指令。的指令。(3)操作码的扩展)操作码的扩展 编码方法编码方法见后见后OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位扩展操作码法(续)扩展操作码法(续)OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1515条三地址指令条三地址指令0000 0000 XXXX YYYY ZZZZXXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111515条二地址指令条

9、二地址指令11111111 0000 0000 XXXX YYYYXXXX YYYY1111 1110 XXXX YYYY1111 1110 XXXX YYYY1111 11111111 11111515条一地址指令条一地址指令1111 11111111 1111 0000 0000 XXXXXXXX1111 1111 1110 XXXX1111 1111 1110 XXXX1111 1111 11111111 1111 11111616条零地址指令条零地址指令1111 1111 11111111 1111 1111 0000 00001111 1111 1111 11111111 1111

10、1111 1111扩展窗口扩展窗口 扩展窗口扩展窗口扩展窗口扩展窗口 OPOPA1A1A2A2OPOPA1A1OPOP扩展规则:扩展规则: 短码不能是长码的前缀;短码不能是长码的前缀; 操作码不能重复,格式安排要操作码不能重复,格式安排要 统一。统一。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

11、A2 A3(A1) OP (A2) A34 次访存次访存4 次访存次访存寻址范围寻址范围 26 = 64寻址范围寻址范围 28 = 256若若 A3 用用 A1 或或 A2 代替,代替,为二地址指令为二地址指令 设指令字长为设指令字长为 32 位位操作码固定为操作码固定为 8 位位(3) 二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 次访存次访存若若ACC 代替代替 A1(或或A2),为一地址指令为一地址指令若结果存于若结果存于 ACC (4) 一地址一地址(5) 零地址零地址OP A18 24无地址码无地址码(ACC) OP (

12、A1) ACC2 次访存次访存寻址范围寻址范围 212 = 4 K寻址范围寻址范围 224 = 16 M 3次访存次访存二、指令字长二、指令字长指令字长决定于指令字长决定于操作码的长度操作码的长度指令字长指令字长 = 存储字长存储字长 2. 指令字长指令字长 可变可变 操作数地址的长度操作数地址的长度 操作数地址的个数操作数地址的个数 1. 指令字长指令字长 固定固定 按字节的倍数变按字节的倍数变 化化l小结小结 当用一些硬件资源代替指令字中的地址码字段当用一些硬件资源代替指令字中的地址码字段 当指令的地址字段为寄存器时当指令的地址字段为寄存器时 可扩大指令的寻址范围可扩大指令的寻址范围 可缩

13、短指令字长可缩短指令字长 可减少访存次数可减少访存次数 三地址三地址 OP R1, R2, R3 二二地址地址 OP R1, R2 一地址一地址 OP R1 指令执行阶段不访存指令执行阶段不访存 可缩短指令字长可缩短指令字长7.2 操作数类型和操作种类操作数类型和操作种类 一、操作数类型一、操作数类型 地址地址 数字数字 字符字符 逻逻 辑数辑数无符号无符号 整数整数定点数、浮点数、十进制定点数、浮点数、十进制 数数ASCII 逻辑运算逻辑运算 二、数据在存储器中的存放方式二、数据在存储器中的存放方式字地址字地址为为低字节低字节 地址地址字地址字地址为为高字节高字节 地址地址37621540

14、字地址字地址04低字节低字节04512673 字地址字地址04低字节低字节l存储器中的数据存放(存储器中的数据存放(存储字长为存储字长为 32 位位)地址(十进制)地址(十进制) 0 4 812162024283236双字双字双字(地址双字(地址3232)双字双字双字(地址双字(地址2424)半字(地址半字(地址2020)半字(地址半字(地址2222)半字(地址半字(地址1616)半字(地址半字(地址1818)字节(地址字节(地址 8 8)字节(地址字节(地址 9 9)字节(地址字节(地址1010)字节(地址字节(地址1111)字(地址字(地址 4 4)字(地址字(地址 0 0)字节(地址字节

15、(地址1414)字节(地址字节(地址1515)字节(地址字节(地址1313) 字节(地址字节(地址1212)边界对准边界对准地址(十进制地址(十进制)048字节字节( 地址地址7)字节字节( 地址地址6)字字( 地址地址2)半字半字( 地址地址10)半字半字( 地址地址8)半字半字( 地址地址0)字字( 地址地址4)边界未对准边界未对准 三、操作类型三、操作类型1. 数据传送数据传送源源 目的目的寄存器寄存器寄存器寄存器寄存器寄存器寄存器寄存器存存 储器储器存储器存储器 存储器存储器存储器存储器置置“1”,清,清“0”2. 算术逻辑操作算术逻辑操作加、减、乘、除、增加、减、乘、除、增 1、减、

16、减 1、求补、浮点运算、十进制运算、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反与、或、非、异或、位操作、位测试、位清除、位求反如如 8086MOVESTORELOADMOVEPUSHPOP例如例如MOVEMOVEADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST3. 移位操作移位操作算术移位算术移位4. 转移转移(1) 无条件转移无条件转移 JMP(2) 条件转移条件转移结果为零转结果为零转 (Z = 1) JZ结果溢出转结果溢出转 (O = 1)JO结果有进位转结果有进位转(C

17、 = 1)JC跳过一条指令跳过一条指令 SKP循环移位(带进位和不带进位)循环移位(带进位和不带进位)如如300305306307SKP DZ D = 0 则跳则跳逻辑移位逻辑移位完成触发器完成触发器(3) 调用和返回调用和返回CALL SUB1.CALL SUB2.CALL SUB2RETURNRETURN 主程序主程序地地 址址200021002101子程序子程序SUB1240025002501256025612700 主存空间分配主存空间分配 程序执行流程程序执行流程子程序子程序SUB2.IN AX, nOUT DX, ALOUT n, AXOUT DX, AX(4) 陷阱(陷阱(Tra

18、p)与陷阱指令与陷阱指令l意外事故的中断意外事故的中断 设置供用户使用的陷阱指令设置供用户使用的陷阱指令如如 8086 INT TYPE 软中断软中断提供给用户使用的陷阱指令,完成系统调用提供给用户使用的陷阱指令,完成系统调用5. 输入输出输入输出 一般不提供给用户直接使用一般不提供给用户直接使用 在出现事故时,由在出现事故时,由 CPU 自动产生并执行(隐指令)自动产生并执行(隐指令)IN AL, DXIN AX, DX入入 端口地址端口地址 CPU 的寄存器的寄存器出出 CPU 的寄存器的寄存器 端口地址端口地址如如如如IN AL, nOUT n, AL7.3 寻寻 址址 方方 式式寻址方

19、式寻址方式 确定确定 本条指令本条指令 的的 操作数地址操作数地址下一条下一条 欲执行欲执行 指令指令 的的 指令地址指令地址指令寻址指令寻址数据寻址数据寻址寻址方式寻址方式(1)编址单位)编址单位 字编址字编址 : 编址单位编址单位=访问单位访问单位 每个编址单位所包含的信息量(二进制位数)与读每个编址单位所包含的信息量(二进制位数)与读或或 写一次寄存器、主存所获得的信息量是相同的。早写一次寄存器、主存所获得的信息量是相同的。早期的大多数机器都采用这种编址方式。期的大多数机器都采用这种编址方式。 特点:特点:控制简单、地址浪费少;不支持非数值运算:控制简单、地址浪费少;不支持非数值运算:编

20、址方式编址方式l寻址技术寻址技术寻址:寻址:寻找操作数的地址或下一条将要执行的指寻找操作数的地址或下一条将要执行的指令地址。寻址技术包括令地址。寻址技术包括编址方式编址方式和和寻址方式寻址方式。返回返回(1)编址单位(续)编址单位(续) 字节编址字节编址 字节编址为了适应非数值计算的需要。字节编址字节编址为了适应非数值计算的需要。字节编址方式使编址单位与信息的基本单位(一个字节)相方式使编址单位与信息的基本单位(一个字节)相一致(一致(最大优点最大优点)。然而,如果主存的访问单位也)。然而,如果主存的访问单位也是一个字节的话,那么主存的频带就太窄。是一个字节的话,那么主存的频带就太窄。 编址单

21、位编址单位 访问单位访问单位 通常主存的访问单位是编址单位的若干倍。造成通常主存的访问单位是编址单位的若干倍。造成 地址的浪费。地址的浪费。 位编址位编址 部分计算机系统采用位编址方式。地址浪费最大。部分计算机系统采用位编址方式。地址浪费最大。返回返回(2) 指令中地址码的位数指令中地址码的位数l 指令格式中每个地址码的位数与主存容量和最小指令格式中每个地址码的位数与主存容量和最小寻址单位(即编址单位)相关联。主存容量越大,寻址单位(即编址单位)相关联。主存容量越大,所需的地址码位数就越长。对于相同容量来说,如所需的地址码位数就越长。对于相同容量来说,如果以字节为最小寻址单位,地址码的位数就需

22、要长果以字节为最小寻址单位,地址码的位数就需要长些;如果以字为最小寻址单位(假定字长为些;如果以字为最小寻址单位(假定字长为1616位或位或更长),地址码的位数可以减少。更长),地址码的位数可以减少。【例例】 设某机主存容量为设某机主存容量为220 个字节,机器字长个字节,机器字长32位。若最小寻址单位为字节(按字节编址),位。若最小寻址单位为字节(按字节编址),其地址码应为其地址码应为20位;若最小寻址单位为字(按字位;若最小寻址单位为字(按字编址),其地址码只需编址),其地址码只需18 (220/22 )位。位。返回返回7.3 寻寻 址址 方方 式式一、指令寻址一、指令寻址顺顺 序序( P

23、C ) + 1 PC跳跃跳跃 由转移指令指出由转移指令指出LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1 指令地址指令地址 寻址方式寻址方式 指令地址指令地址指令指令 顺序顺序 1 顺序顺序 2 顺序顺序 3 跳跃跳跃 7 顺序顺序 8二、数据寻址二、数据寻址 形式地址形式地址 指令字中的地址指令字中的地址 有效地址有效地址 操作数的真实地址操作数的真实地址 约定约定 指令字长指令字长 = 存储字长存储字长 = 机器字长机器字长1. 立即寻址立即寻址 指令执行阶段不访存指令执行阶段不

24、访存 A 的位数限制了立即数的范围的位数限制了立即数的范围形式地址形式地址 A操作码操作码寻址特征寻址特征OP # A立即寻址特征立即寻址特征立即数立即数 可正可负可正可负 补码补码形式地址形式地址 A 就是操作数就是操作数2. 直接寻址直接寻址EA = A操作数操作数主存主存寻址特征寻址特征LDAAAACC 执行阶段访问一次存储器执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出有效地址由形式地址直接给出3. 隐含寻址隐含寻址l 操作数地址隐含在操作码中操

25、作数地址隐含在操作码中ADDA操作数操作数 主存主存 寻址特征寻址特征AACC暂暂 存存ALU另一个操作数另一个操作数隐含在隐含在 ACC 中中如如 8086MUL指令指令被乘数隐含在被乘数隐含在 AX(16位)或位)或 AL(8位)中位)中MOVS指令指令源操作数的地址隐含在源操作数的地址隐含在 SI 中中目的操作数的地址隐含在目的操作数的地址隐含在 DI 中中 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长4. 间接寻址间接寻址EA =(A)l 有效地址由形式地址间接提供有效地址由形式地址间接提供OPA寻址特征寻址特征AEA主存主存 EAA1EA A1主主

26、 存存 EA10 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编程便于编程OPA寻址特征寻址特征A一次间址一次间址 多次间址多次间址 操作操作 数数操作数操作数 多次访存多次访存 子程序子程序主程序主程序8081201202调用子程序调用子程序调用子程序调用子程序间接寻址编程举例间接寻址编程举例(A) = 81(A) = 202 间址特征间址特征JMP A 【例例】设某机器字长设某机器字长16bit,主存容量为,主存容量为64K字字,指令格式指令格式为单字长单地址,共为单字长单地址,共64条指令。试说明:条指令。试说明:(1) 若只采用直接寻址方式,指令的访存

27、空间若只采用直接寻址方式,指令的访存空间=? 答:答:64条指令,操作码需条指令,操作码需6位编码,其余部分为直位编码,其余部分为直接的地址码接的地址码=10位,能访问空间为:位,能访问空间为:210=1K字。字。(2) 为了扩充指令的寻址范围,可采用直接为了扩充指令的寻址范围,可采用直接/间接寻间接寻址方式(增加址方式(增加1位寻址方式标志),指令的访存空间位寻址方式标志),指令的访存空间?、直接寻址空间?、直接寻址空间=?答:答:64条指令,操作码需条指令,操作码需6位编码,位编码,1位位寻址方式寻址方式标志,直接的地址码标志,直接的地址码=9位,直接寻址空间为:位,直接寻址空间为:29=

28、0.5K字字; 间接寻址空间为:间接寻址空间为:216=64K字。访存空间字。访存空间=64K字。字。5. 寄存器寻址寄存器寻址EA = Ri 执行阶段不访存,只访问寄存器,执行速度快执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征寻址特征 寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长 操作数操作数R0RiRn 寄存器寄存器l 有效地址即为寄存器编号有效地址即为寄存器编号EA = ( Ri ) 6. 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,操作数在存储器中,执行阶段访存有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数操作数主存主存 OPRi寻址特征寻址

29、特征 便于编制循环程序便于编制循环程序地址地址 R0RiRn寄存器寄存器l 有效地址在寄存器中有效地址在寄存器中7. 基址寻址基址寻址(1) 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器EA = ( BR ) + ABR 为基址寄存器为基址寄存器OPA操作数操作数主存主存寻址特征寻址特征ALUBR 可扩大寻址范围可扩大寻址范围 有利于多道程序有利于多道程序 BR 内容由操作系统或管理程序确定内容由操作系统或管理程序确定 在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址A可变可变(2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器 操作数操作数主存

30、主存 寻址特征寻址特征ALUOPR0AR0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存通用寄存 器器R0Rn-1R1 基址寄存器的内容由操作系统确定基址寄存器的内容由操作系统确定 在程序的执行过程中在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变8. 变址寻址变址寻址EA = ( IX ) +AOPA 操作数操作数主存主存 寻址特征寻址特征ALUIX 可扩大寻址范围可扩大寻址范围 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 IX 为变址寄存器(专用)为变址寄存器(专用)

31、 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器例例 设数据块首地址为设数据块首地址为 D,求求 N 个数的平均值个数的平均值直接寻址直接寻址变址寻址变址寻址LDA DADD D + 1ADD D + 2ADD D + ( N -1 )DIV # NSTA ANSLDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANS共共 N + 2 条指令条指令共共 8 条指令条指令ADD X, DMX 为变址寄存器为变址寄存器D 为形式地址为形式地址(X) 和和 #N

32、比较比较(X) +1 X结果不为零则转结果不为零则转9. 相对寻址相对寻址 EA = ( PC ) + AA 是相对于当前指令的位移量(可正可负,补码)是相对于当前指令的位移量(可正可负,补码) A 的位数决定操作数的寻址范围的位数决定操作数的寻址范围 程序浮动程序浮动 广泛用于转移指令广泛用于转移指令 操作数操作数寻址特征寻址特征ALUOPA 相对距离相对距离 A1000PC 主存主存1000AOP (1) 相对寻址举例相对寻址举例M 随程序所在存储空间的位置不同而不同随程序所在存储空间的位置不同而不同EA = ( M+3 ) 3 = M 3*LDA # 0LDX # 0ADD X, DIN

33、XCPX # NBNE MDIV # NSTA ANSMM+1M+2M+3而指令而指令 BNE 与与 指令指令 ADD X, D 相对位移量不变相对位移量不变 3* 指令指令 BNE操作数的有效地址为操作数的有效地址为 3* 相对寻址特征相对寻址特征*(2) 按字节寻址的相对寻址举例(按字节寻址的相对寻址举例(1)OP位移量位移量2000 H2008 H8JMP * + 8OP06 H2000 H2008 H8设设: 当前指令地址当前指令地址 PC = 2000H转移后的目的地址为转移后的目的地址为 2008H因为因为 取出取出 JMP * + 8 后后 PC = 2002H二字节指令二字节指

34、令故故: JMP * + 8 指令的第二字节为指令的第二字节为 2008H - 2002H = 06Hl相当于将整个主存空间分成若干大小相同的区相当于将整个主存空间分成若干大小相同的区(称为一页称为一页),每页有若干个主存单元。每页都),每页有若干个主存单元。每页都有自己的编号(有自己的编号(页面地址页面地址);页面内的每个主存);页面内的每个主存单元也有自己的编号(单元也有自己的编号(页内地址页内地址)。)。l操作数的有效地址被分为两部分:操作数的有效地址被分为两部分: 页内地址页内地址页面地址页面地址(10)数据寻址)数据寻址页面寻址页面寻址(Page Addressing )返回返回指令

35、寄存器指令寄存器主存储器主存储器OPA0页页1页页N-1页页指令指令所在页所在页0页页操作数操作数0页页l基页寻址基页寻址A页内地址页内地址页面地址页面地址EA操作数操作数3800000000000000000000380038255页页64K0000H00FFHFFFFH0000H00FFH 操作数在零页,指令给出操作数在零页中的页内地址。操作数在零页,指令给出操作数在零页中的页内地址。返回返回指令寄存器指令寄存器主存储器主存储器OPA0页页1页页N-1页页指令指令所在页所在页指令指令所在页所在页操作数操作数PCHPCLPCH程序计数器程序计数器l当前页寻址当前页寻址页内地址页内地址页面地址

36、页面地址EA操作数操作数APCH操作数操作数38382F852F2F38255页页64K0000H00FFHF操作数和指令在同一页,页面地址从操作数和指令在同一页,页面地址从PC的高位获取,页的高位获取,页内地址由指令给出。内地址由指令给出。F指令中的寻址特征位指令中的寻址特征位 (Z/C ) 指明是零页或是当前页寻址。指明是零页或是当前页寻址。返回返回OP2F H02400290 8 设设: 当相对寻址转移指令占当相对寻址转移指令占3个字节:操作码后个字节:操作码后为为2字节的相对位移量(补码),每当字节的相对位移量(补码),每当CPU从存从存储器取出一个字节时,即自动(储器取出一个字节时,

37、即自动(PC)+1-PC (1) (PC)=240,要求转移到,要求转移到290,则转移指令,则转移指令的第二、三字节的机器代码是多少。的第二、三字节的机器代码是多少。数据以低数据以低字节地址为字地址的存放方式字节地址为字地址的存放方式答:答:(PC)=240,取指后,取指后,PC=243,要求转移到,要求转移到290,相对,相对位移量位移量=290-243=47=2FH,小端原则下,第二字节为,小端原则下,第二字节为2FH,第三字节第三字节00H 00H(2) (PC)=240,要求转移到,要求转移到200,则转移指令的第二、三,则转移指令的第二、三字节的机器代码是多少。字节的机器代码是多少

38、。数据以高字节地址为字地址存放。数据以高字节地址为字地址存放。 答:答:(PC)=240,取指后,取指后,PC=243,要求转移到,要求转移到200,相对,相对位移量位移量=200-243=-43=D5H,符号扩展为,符号扩展为FFD5H,大端原则,大端原则下,第二字节为下,第二字节为FFH,第三字节第三字节D5H【例例】设某机器字长设某机器字长16bit,主存容量为,主存容量为64K字字,指令格式指令格式为单字长单地址,共为单字长单地址,共64条指令。试说明:条指令。试说明:(4) 采用直接采用直接/间接、页面寻址的组合寻址方式,指令间接、页面寻址的组合寻址方式,指令的访存空间?、直接寻址空

39、间的访存空间?、直接寻址空间=?答:答:64条指令,操作码需条指令,操作码需6位编码,位编码, 1位位标志、标志、1位位Z/C标志,直接的地址码标志,直接的地址码=8位,直接寻址空间为:位,直接寻址空间为:28=0.25K字字; 间接寻址空间为:间接寻址空间为:216=64K字。访存空间字。访存空间=64K字。字。【例例】设某机器字长设某机器字长16bit,主存容量为,主存容量为64K字字,指令格式采指令格式采用单字长单地址,共用单字长单地址,共50条指令。若有直接、间接、变址、条指令。若有直接、间接、变址、相对寻址四种寻址方式,试设计其格式。相对寻址四种寻址方式,试设计其格式。答:操作码答:

40、操作码6b、寻址方式、寻址方式2b、地址码、地址码8b11. 堆栈寻址堆栈寻址(1) 堆栈的特点堆栈的特点堆栈堆栈 硬堆栈硬堆栈软堆栈软堆栈多个寄存器多个寄存器指定的存储空间指定的存储空间先进后出先进后出(一个入出口)(一个入出口) 栈顶地址栈顶地址 由由 SP 指出指出 11FFFH +12000 H进栈进栈 (SP) 1 SP出栈出栈 (SP)+ 1 SP栈栈 顶顶栈底栈底 2000 HSP2000 H1FFF HSP1FFFH栈顶栈顶栈底栈底 进栈进栈出栈出栈 1FFF H栈顶栈顶 2000 H栈顶栈顶(2) 堆栈寻址举例堆栈寻址举例15200HACCSP X栈顶栈顶 200H栈底栈底

41、主存主存 151FFHACCSP15栈顶栈顶 200H栈底栈底 主存主存 X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX栈顶栈顶 200H栈底栈底 主存主存 151FFH15200HACCSP栈顶栈顶 200H栈底栈底 主存主存 X15(3) SP 的修改与主存编址方法有关的修改与主存编址方法有关 按按字字编址编址进栈进栈出栈出栈(SP) 1 SP(SP) + 1 SP 按按 字节字节 编址编址存储字长存储字长 16 位位进栈进栈出栈出栈(SP) 2 SP(SP) + 2 SP存储字长存储字长 32 位位进栈进栈出栈出栈(SP) 4 SP(

42、SP) + 4 SP7.4 指令格式举例指令格式举例一、设计指令格式时应考虑的各种因素一、设计指令格式时应考虑的各种因素1. 指令系统的指令系统的 兼容性兼容性(向上兼容向上兼容)2. 其他因素其他因素操作类型操作类型数据类型数据类型指令格式指令格式 包括指令个数及操作的难易程度包括指令个数及操作的难易程度指令字长是否固定指令字长是否固定寻址方式寻址方式寄存器个数寄存器个数地址码位数、地址个数、寻址方式类型地址码位数、地址个数、寻址方式类型操作码位数、是否采用扩展操作码技术,操作码位数、是否采用扩展操作码技术,确定哪些数据类型可参与操作确定哪些数据类型可参与操作指令寻址、操作数寻址指令寻址、操

43、作数寻址寄存器的多少直接影响指令的执行时间寄存器的多少直接影响指令的执行时间? 指令中地址个数的选择考虑指令中地址个数的选择考虑 对于同一问题,用对于同一问题,用3地址指令编写的地址指令编写的程序程序最短,最短,但指令长度最长,而用但指令长度最长,而用2、1、0地址指令来编写程地址指令来编写程序,程序的长度一个比一个长,但指令的长度一序,程序的长度一个比一个长,但指令的长度一个比一个短。个比一个短。7 地址数指令的特点和适用场合地址数指令的特点和适用场合返回返回二、指令格式举例二、指令格式举例1. PDP 8指令字长固定指令字长固定 12 位位 操作码操作码 间间 页页 地址码地址码访存类指令

44、访存类指令 0235411寄存器类指令寄存器类指令 1 1 1 辅助操作码辅助操作码02 311I/O 类指令类指令 1 1 0 设备设备 操作码操作码02 31198采用扩展操作码技术采用扩展操作码技术2. PDP 11源地址源地址OP4 6 6 16 16目的地址目的地址存储器地址存储器地址1存储器地址存储器地址2OP10 6 16目的地址目的地址存储器地址存储器地址目的地址目的地址4 6 6源地址源地址OP 10 6目的地址目的地址OP-CODE16OP-CODE指令字长有指令字长有 16 位、位、32 位、位、48 位三种位三种零地址零地址 (16 位位)一地址一地址 (16 位位)二地址二地址 R R (16 位位)二地址二地址 R M (32 位位)二地址二地址 M M (48 位位)扩展操作码技术扩展操作码技术3. IBM 360OPR1R2 RR格式格式 8 4 4OPR1XBD RX格式格式 8 4 4 4 12OPR1R3

温馨提示

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

评论

0/150

提交评论