第9章 指令集结构.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 指令集结构

执行/有效地址/完成分支 下一周期 有限状态机将AMUX和BMUX的选择信号A.S和B.S分别设为0和00,将EXT.S设为0(SEXT逻辑将执行IR[15:0]的符号扩展操作),选择来自寄存器A(即基址寄存器R2)和来自IR[15:0]的符号扩展的值; 将ALUOp设为0001(加法),在ALU中进行加法运算,即计算“基址+偏移量”,形成有效地址; 将LD.ALU设为1,结果存储于ALUOut寄存器中 GateMDR MEM.EN.R.W SEXT ALU控制器 [5:0] IR LD.IR 32 有限 状态机 控制 寄存器堆 LD.REG 32 4 ALU 32 GateALU MDR MAR 32 32 32 LD.MDR 存储器 LD.MAR 输入 输出 R Z [31:26] Z ALUOp 4 B A LD.B LD.A EXT.S [15:11] [25:21] [20:16] R [25:0] 32 SR1 SR2 DR DR.S B.S BMUX PC GatePC LD.PC 32 DRMUX ALUOut CLK SR1OUT SR2OUT AMUX PC PC 4 A.S 2 5 32 32 LD.ALU 访问内存 下一周期(或多于一个,如果访问存储器需要多于一个时钟周期的话) 有限状态机将GateALU和LD.MAR设为1,将ALUOut中的值通过总线传给MAR; 将MEM.EN.R.W设为0(即读存储器),LD.MDR设为1,读取存储器,将以该地址开头的连续4个单元中的内容加载进MDR。 GateMDR MEM.EN.R.W SEXT ALU控制器 [5:0] IR LD.IR 32 有限 状态机 控制 寄存器堆 LD.REG 32 4 ALU 32 GateALU MDR MAR 32 32 32 LD.MDR 存储器 LD.MAR 输入 输出 R Z [31:26] Z ALUOp 4 B A LD.B LD.A EXT.S [15:11] [25:21] [20:16] R [25:0] 32 SR1 SR2 DR DR.S B.S BMUX PC GatePC LD.PC 32 DRMUX ALUOut CLK SR1OUT SR2OUT AMUX PC PC 4 A.S 2 5 32 32 LD.ALU 写回 最后一个周期 有限状态机将DR.S设为1,选择IR的[20:16]作为目标寄存器(DR),即被加载的寄存器; 将GateMDR和LD.REG设为1,在时钟周期结束时,MDR中的值被加载到R1中。 GateMDR MEM.EN.R.W SEXT ALU控制器 [5:0] IR LD.IR 32 有限 状态机 控制 寄存器堆 LD.REG 32 4 ALU 32 GateALU MDR MAR 32 32 32 LD.MDR 存储器 LD.MAR 输入 输出 R Z [31:26] Z ALUOp 4 B A LD.B LD.A EXT.S [15:11] [25:21] [20:16] R [25:0] 32 SR1 SR2 DR DR.S B.S BMUX PC GatePC LD.PC 32 DRMUX ALUOut CLK SR1OUT SR2OUT AMUX PC PC 4 A.S 2 5 32 32 LD.ALU IA-32指令集 Intel,32位x86架构的名称 字长:32位 存储器 4GB 数据的存储和排列顺序 小端,little Endian 寄存器 8个GPR,命名为EAX,EBX,…… PC,命名为EIP …… IA-32指令集 指令格式 长度可变 寻址模式 Mod、R/M、Reg/OP三个字段与操作码一起确定操作数所在的寄存器或有效地址 SIB 比例系数S(Scale),变址寄存器I(Index),基址寄存器B(Base) 操作码 寻址模式 SIB 位移 立即数 1或2字节 0或1字节 0或1字节 1,2或4字节 1,2或4字节 7 6 5 4 3 2 1 0 Mod Reg/OP R/M 7 6 5 4 3 2 1 0 SS Index Base IA-32指令示例 LEA 指令 加载有效地址到某寄存器中去 lea (%edx,%eax,1), %eax 含义:%eax= %edx + %eax * 1 操作码 寻址模式 SIB 位移 立即数 1或2字节 0或1字节 0或1字节 1,2或4字节 1,2或4字节 7 6 5 4 3 2 1 0 Mod Reg/OP R/M 7 6 5 4 3 2 1 0 SS Index Base IA-32指令示例 ADD 指令 addl 8(%ebp)

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档