计算机组成原理 MIPS 02.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* RISC的设计思想 将不是最频繁使用的功能由软件实现 简化硬件 可使其执行得更快 指令应简单 若增加一条使机器周期时间延长10%的指令,则该指令必须至少能减少10%的执行周期数 固定格式的指令和流水线操作 存储器日趋价廉、高速,时空关系的权衡应少计较空间容量,而应突出指令执行速度的因素。 * *## * 指令的访存类型 堆栈型 累加器型 通用寄存器型 寄存器-寄存器型 寄存器存储器型 存储器-存储器型 * 指令的访存类型的比较 * 指令集 数据传送:move, load, store 算术运算:add, sub, mult, div, comp 逻辑运算:and, or, neg, shift 程序控制:jump, branch, jsr, ret, int 输入输出:in, out 堆栈操作:push, pop 字符串:MOVS, CMPS, SCAS, LODS, STOS 系统指令:HALT * 转移指令 如: jump $1000 bgt R1 条件转移vs无条件转移 相对转移vs绝对转移 状态寄存器SR N Z V C P * 常见的条件转移指令 bz 为零时转移 bnz 非零时转移 bc 进位时转移 bnc 无进位时转移 bp 为正数时转移 bm 为负数时转移 bv 溢出时转移 bnv 无溢出时转移 bgt 大于时转移 bge 大于或等于时转移 blt 小于时转移 ble 小于或等于时转移 beq 等于时转移 助记符 转移条件 bne 不等于时转移 * 转子指令 功能 实现子程序调用 步骤 将下一条指令的地址(PC的值)存放在一个临时存储位置 将子程序的起始地址装入PC中 子程序返回指令 将存放在临时存储位置的指令地址取出 放回PC * 指令系统与汇编程序设计实例 MIPS处理器的主要特征 指令系统简单 所有的指令都是32位宽度 指令格式共三种 立即数型、转移型和寄存器型。 操作数寻址方式有三种 基址加16位位移量的访存寻址 立即数寻址 寄存器寻址 * MIPS处理器的主要特征 指令系统简单 采用流水技术 依靠优化编译器进行指令序列的重新安排 以防止流水线中出现的相互冲突 使用较多寄存器 32个通用寄存器 表示为$0到$31 $0固定为0 一对存储64位数据的寄存器Hi,Lo 用于存放定点乘法的结果 异常PC寄存器epc 采用“比较与转移”指令 比较和转移这两个动作在一条指令内便可完成 beq $1, $2, 1000 没有状态寄存器 * MIPS算术指令 * MIPS逻辑指令 * MIPS数据传递指令 * MIPS条件转移指令 * MIPS无条件转移指令 * MIPS指令操作码定义 * MIPS R格式指令扩展操作码定义 * 例10 根据MIPS指令操作码定义以及指令格式,给出以下指令的各个字段的十进制值: add $8, $17,$18 答:指令是R格式指令。 第一个字段和最后一个字段的值分别为0和32。 第二个字段为17 第三个字段为18 第四个字段为8 第五个字段未使用 被设置为0 0 17 18 8 0 32 * 汇编程序设计的简单例子 例11 假定以下一段C语言程序中包含的变量a, b, c, d, e分别存放在寄存器$1到$5中, a=b+c; d=a-e; 写出编译后的MIPS汇编语言指令序列。 答:MIPS指令对两个源操作数进行计算,并产生一个结果,上述两个语言可以直接转换成两条指令: add $1, $2, $3 sub $4, $1, $5 * 汇编程序设计的简单例子 例12 将以下C语言的语句 f=(g+h)-(i+j); 用MIPS汇编语言表示,假定变量f,g,h,i,j分别分配到寄存器$16, $17, $18, $19,$20中,寄存器$8和$9存放临时计算结果, 解: add $8, $17, $18 add $9, $19, $20 sub $16, $8, $9 * 汇编程序设计的简单例子 例13 将以下C语言的语句写成MIPS汇编指令表示 g=h+A[i]; 这里A是具有100个元素的数组,在内存中的起始地址用Astart表示,假定编译程序将变量g, h和i分别分配给寄存器$17, $18和$19。 解:add $20, $19, $19 add $19, $20, $20 lw $8, Astart($19) add $17, $18, $8 * 汇编程序设计的简单例子 例14 如果将上例C语句改为 A[i]=h+A[i]; 写出相应的MIPS汇编指令序列。假定编译程序将变量g, h和4i分别分配给寄存

文档评论(0)

cjp823 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档