neg计算机组成原理,计算机组成原理第七章

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理第七章

(39页)

32bbf248d725f1bf21f4becda82fc260.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术 一、指令的一般格式 操作码字段 地址码字段 1. 操作码 反映机器做什么操作 (1) 长度固定 用于指令字长较长的情况 ,RISC 如 IBM 370 操作码 8 位 (2) 长度可变 操作码分散在指令字的不同字段中(3) 扩展操作码技术 操作码的位数随地址数的减少而增加 OP A1 A2 A3 0000 A1 A2 A3 … A… A… A… 4 位操作码 0001 1 2 3 15条三地址指令 1110 A1 A2 A3 1111 0000 A2 A3 11… 11 00… 01 A… A… 8 位操作码 2 3 15条二地址指令 1111 1110 A2 A3 1111 1111 0000 A3 11… 11 11… 11 00… 01 A… 12 位操作码 3 15条一地址指令 1111 1111 1110 A3 1111 1111 1111 0000 11… 11 11… 11 11… 11 00… 01 16 位操作码 16条零地址指令 1111 1111 1111 11112. 地址码 (1) 四地址 8 6 6 6 6 设指令字长为 位 OP A1 A2 A3 A4 32 操作码固定为 位 A1 第一操作数地址 8 第二操作数地址 A2 4 次访存 A3 结果的地址 寻址范围 26 = 64 A4 下一条指令地址 (A1) OP (A2) A3 若 PC 代替 A4 (2) 三地址 8 8 8 8 OP A1 A2 A3 4 次访存 寻址范围 28 = 256 (A1) OP (A2) A3 若 A3 用 A1 或 A2 代替(3) 二地址 8 12 12 OP A1 A2 (A1) OP (A2) A1 4 次访存 或 12 (A1) OP (A2) A2 寻址范围 2 = 4 K 若结果存于 ACC 3次访存 若ACC 代替 A1(或A2)(4) 一地址 8 24 OP A1 2 次访存 寻址范围 24 (ACC) OP (A1) ACC 2 = 16 M (5) 零地址 无地址码二、指令字长 操作码的长度 指令字长决定于 操作数地址的长度 操作数地址的个数 1. 指令字长 固定 指令字长 = 存储字长 2. 指令字长 可变 按字节的倍数变化小结 Ø 当用一些硬件资源代替指令字中的地址码字段后 ? 可扩大指令的寻址范围 ? 可缩短指令字长 ? 可减少访存次数 Ø 当指令的地址字段为寄存器时 三地址 OP R1, R2, R3 二地址 OP R1, R2 一地址 OP R1 ? 可缩短指令字长 ? 指令执行阶段不访存一、操作数类型 地址 无符号整数 数字 定点数、浮点数、十进制数 字符 ASCII 逻辑数 逻辑运算二、数据在存储器中的存放方式字地址 低字节 字地址 低字节 0 3 2 1 0 0 0 1 2 3 4 7 6 5 4 4 4 5 6 7 字地址 为 低字节 地址 字地址 为 高字节 地址存储器中的数据存放(存储字长为 32 位) 边界对准 地址(十进制) 字(地址 0) 0 字(地址 4) 4 字节(地址11) 字节(地址10) 字节(地址9) 字节(地址8) 8 字节(地址15) 字节(地址14) 字节(地址13) 字节(地址12) 12 16 半字(地址18)ü 半字(地址16)ü 半字(地址22)ü 半字(地址20)ü 20 双字(地址24)▲ 24 双字 28 双字(地址32)▲ 32 双字 36 边界未对准 地址(十进制) 字( 地址2) 半字( 地址0) 0 字节( 地址7) 字节( 地址6) 字( 地址4) 4 半字( 地址10) 半字( 地址8) 8三、操作类型 1. 数据传送 源 寄存器 寄存器 存储器 存储器 目的 寄存器 存储器 寄存器 存储器 例如 MOVE STORE LOAD MOVE MOVE MOVE PUSH POP 置“1”,清“0” 2. 算术逻辑操作 加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算 与、或、非、异或、位操作、位测试、位清除、位求反 如 8086 ADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST3. 移位操作 算术移位 逻辑移位 循环移位(带进位和不带进位)4. 转移 (1) 无条件转移 JMP (2) 条件转移 如 结果为零转 (Z = 1) JZ 完成触发器 300 结果溢出转 (O = 1)JO … 则跳 结果有进位转(C = 1)JC 305 SKP DZ D = 0 306 跳过一条指令 SKP 307(3) 调用和返回 地址 主程序 . 2000 . 2100 . CALL . SUB1 2101 . . . . 子程序SUB1 2400 … 2500 CALL . SUB2 . 2501 . 2560 CALL SUB2 2561 … RETURN 子程序SUB2 . . 2700 . . . . RETURN 主存空间分配 程序执行流程(4) 陷阱(Trap)与陷阱指令 意外事故的中断 ? 一般不提供给用户直接使用 在出现事故时,由 CPU 自动产生并执行(隐指令) ? 设置供用户使用的陷阱指令 如 8086 INT TYPE 软中断 提供给用户使用的陷阱指令,完成系统调用 5. 输入输出 入 端口地址 CPU 的寄存器 如 IINN AALX,, nn IINN AALX,, DDXX 出 CPU 的寄存器 端口地址 如 OOUUTT nn,, AALX OOUUTT DDXX,, AALX寻址方式 确定 本条指令 的 操作数地址 下一条 欲执行 指令 的 指令地址 指令寻址 寻址方式 数据寻址一、指令寻址 顺序 ( PC ) + 1 PC 跳跃 由转移指令指出 指令地址 指令 指令地址寻址方式 PC 0 LDA 1000 +1 11 ADD 1001 顺序寻址 22 DEC 1200 顺序寻址 33 JMP 7 顺序寻址 4 LDA 2000 5 SUB 2001 6 INC 77 STA 2500 跳跃寻址 . 88 LDA . 1100 顺序寻址 . 9二、数据寻址 操作码 寻址特征 形式地址 A 形式地址 指令字中的地址 有效地址 操作数的真实地址 约定 指令字长 = 存储字长 = 机器字长 1. 立即寻址 形式地址 A 就是操作数 立即寻址特征 OP # A 立即数 可正可负 补码 ? 指令执行阶段不访存 ? A 的位数限制了立即数的范围2. 直接寻址 EA = A 有效地址由形式地址直接给出 寻址特征 主存 LDA A A 操作数 ACC ? 执行阶段访问一次存储器 ? A 的位数决定了该指令操作数的寻址范围 ? 操作数的地址不易修改(必须修改A)3. 隐含寻址 操作数地址隐含在操作码中 寻址特征 主存 ADD A ACC A 操作数 另一个操作数 隐含在 ACC 中 ALU 暂存 如 8086 MUL 指令 被乘数隐含在 AX(16位)或 AL(8位)中 MOVS 指令 源操作数的地址隐含在 SI 中 目的操作数的地址隐含在 DI 中 ? 指令字中少了一个地址字段,可缩短指令字长4. 间接寻址 EA =(A) 有效地址由形式地址间接提供 寻址特征 主存 寻址特征 主存OP A OP A A EA A 1 A1 EA 操作数 EA 一次间址 多次间址 A1 0 操作数 ? 执行指令阶段 2 次访存 EA ? 可扩大寻址范围 ? 便于编制程序 多次访存间接寻址编程举例 主程序 子程序 … … … … … … … … … 80 转 子程序 … … … 81 201 转 子程序 … … 202 … @ 间址特征 … JMP @ A (A) = 280125. 寄存器寻址 EA = Ri 有效地址即为寄存器编号 寻址特征 OP Ri R0 … … … … Ri 操作数 … … Rn 寄存器 ? 执行阶段不访存,只访问寄存器,执行速度快 ? 寄存器个数有限,可缩短指令字长6. 寄存器间接寻址 EA = ( Ri ) 有效地址在寄存器中 寻址特征 主存 OP Ri R0 … … … … Ri 地址 操作数 … … Rn 寄存器 ? 有效地址在寄存器中, 操作数在存储器中,执行阶段访存 ? 便于编制循环程序7. 基址寻址 (1) 采用专用寄存器作基址寄存器 EA = ( BR ) + A BR 为基址寄存器 寻址特征 OP A 主存 BR ALU 操作数 ? 可扩大寻址范围 ? 便于程序搬家 ? BR 内容由操作系统或管理程序确定 ? 在程序的执行过程中 BR 内容不变,形式地址 A 可变(2) 采用通用寄存器作基址寄存器 寻址特征 OP R0 A R0 作基址寄存器 主存 R0 R1 … ALU 通用寄存器 操作数 Rn-1 ? 由用户指定哪个通用寄存器作为基址寄存器 ? 基址寄存器的内容由操作系统确定 ? 在程序的执行过程中 R0 内容不变,形式地址 A 可变8. 变址寻址 EA = ( IX ) +A IX 为变址寄存器(专用) 通用寄存器也可以作为变址寄存器 寻址特征 OP A 主存 IX ALU 操作数 ? 可扩大寻址范围 ? IX 的内容由用户给定 ? 在程序的执行过程中 IX 内容可变,形式地址 A 不变 ? 便于处理数组问题例 设数据块首地址为 D,求 N 个数的平均值 直接寻址 变址寻址 LDA D LDA # 0 ADD D + 1 LDX # 0 X 为变址寄存器 D 为形式地址 AD… D D + 2 M ADD X, D … INX (X) +1 X CPX # N (X) 和 #N 比较 ADD D + ( N -1 ) BNE M 结果不为零则转 DIV # N DIV # N STA ANS STA ANS 共 N + 2 条指令 共 8 条指令9. 相对寻址 EA = ( PC ) + A A 是相对于当前指令的位移量(可正可负,补码) 寻址特征 OP A 主存 PC 1000 1000 OP A … … 相对距离 ALU A 操作数 ? A 的位数决定操作数的寻址范围 ? 程序浮动 ? 广泛用于转移指令(1) 相对寻址举例 LDA # 0 LDX # 0 M ADD X, D M+1 INX M+2 CPX # N *相对寻址特征 M+3 BNE M * – 3 DIV # N STA ANS M 随程序所在存储空间的位置不同而不同 而指令 BNE * – 3 与 指令 ADD X, D 相对位移量不变 指令 BNE * – 3 操作数的有效地址为 EA = ( M+3 ) – 3 = M(2) 按字节寻址的相对寻址举例 8 8 2000 H OP 2000 H OP JMP + 8 位移量 * 06 H 二字节指令 2008 H 2008 H 设 当前指令地址 PC = 2000H 转移后的目的地址为 2008H 因为 取出 JMP * + 8 后 PC = 2002H 故 JMP * + 8 指令 的第二字节为 2008H - 2002H = 6H10. 堆栈寻址 (1) 堆栈的特点 硬堆栈 多个寄存器 堆栈 软堆栈 指定的存储空间 先进后出(一个入出口) 栈顶地址 由 SP 指出 进栈 (SP)– 1 SP 出栈 (SP)+ 1 SP SP 12F0F00F HH – 1 SP 12F0F00F HH +1 进栈 出栈 1FFFH 栈顶 1FFFH 栈顶 2000 H 栈顶 2000 H 栈顶 … … 栈底 栈底 (2) 堆栈寻址举例 主存 主存ACC 15 ACC 15 栈顶 栈顶 1FFH 15 SP 200H SP 1FFH 200H X 200H X PUSH A 前 PUSH A 后 栈底 栈底 主存 主存ACC Y 栈顶 ACC 15 1FFH 15 15 SP 1FFH SP 200H 栈顶 200H X 200H X POP A 前 POP A 后 栈底 栈底(3) SP 的修改与主存编址方法有关 ① 按 字 编址 进栈 (SP)– 1 SP 出栈 (SP)+ 1 SP ② 按 字节 编址 存储字长 16 位 进栈 (SP)– 2 SP 出栈 (SP)+ 2 SP 存储字长 32 位 进栈 (SP)– 4 SP 出栈 (SP)+ 4 SP一、设计指令格式时应考虑的各种因素 1. 指令系统的 兼容性 (向上兼容) 2. 其他因素 操作类型 包括指令个数及操作的难易程度 数据类型 指令格式 指令字长、操作码位数 寻址方式、是否采用扩展操作码 地址码位数、地址个数 寻址方式 寄存器个数二、指令格式举例 1. PDP – 8 指令字长固定 12 位 访存类指令 操作码 间 页 地址码 0 2 3 4 5 11 I/O 类指令 1 1 0 设备 操作码 0 2 3 8 9 11 寄存器类指令 1 1 1 辅助操作码 0 2 3 112. PDP – 11 指令字长有 16 位、32 位、48 位三种 OP – CODE 零地址 (16 位) 16 扩展操作码技术 OP – CODE 目的地址 一地址 (16 位) 10 6 OP 源地址 目的地址 二地址 R R (16 位) 4 6 6 OP 目的地址 存储器地址 二地址 R M (32 位) 10 6 16 OP 源地址 目的地址 存储器地址1 存储器地址2 4 6 6 16 16 二地址 M M (48 位) 3. IBM 360 RR格式 OP R1 R2 二地址 R R 8 4 4 RX 二地址 R M OP R1 X B D格式 基址加变址寻址 8 4 4 4 12 RS 三地址 R M OP R1 R3 B D格式 基址寻址 8 4 4 4 12 SI OP I B D 立即数 M格式 8 8 4 12 基址寻址 SS格式 OP L B1 D1 B2 D2 8 8 4 12 4 12 二地址 M M 基址寻址4. Intel 8086( 关 键 词: 计算机组成原理第七章 ppt、pptx格式 免费阅读 下载 天天文库

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值