- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(1)选取使用频率最高的一些简单指令; (2)简化的指令系统。表现在指令长度固定、指令数较少、基本寻址方式少、指令格式少、指令字长度一致。 (3)只有取数/存数指令访问存储器,其余的指令操作都在寄存器之间进行。RISC的CPU的寄存器较多,如MIPS机有32个寄存器。 (4) 以流水方式工作,从而可在一个时钟周期内执行完毕。 (5)采用阵列逻辑实现的组合电路控制器,不用或少用微程序。 (6)采用优化编译技术,保证流水线畅通,优化寄存器分配。 立即寻址 寄存器寻址:R-type 基址寻址:I-type PC相对寻址 伪直接寻址(pseudodirect addressing) 注意:字长32位 26位形式地址左移2位(字对准),与PC的高4位拼接 立即寻址 操 作 数 存储器直接寻址 间接寻址 变址寻址 基址寻址 基址加变址寻址 在指令中 在寄存器中 在主存中 在I/O端口中 直接寻址(8位) 间接寻址(16位 DX) 寄存器直接寻址 寄存器寻址 存储器寻址 6、堆栈寻址方式 堆栈是计算机中的暂存单元 a)串联堆栈 ?组成: CPU内的一组专门寄存器组成,每个寄存器保存一个字 ?操作 进栈:将某个通用寄存器中的数据送入堆栈。 出栈:将堆栈中栈顶的数据送到某个寄存器中 ?串联堆栈的操作过程 ?特点: ?快速:在CPU内部实现 ?串行:进栈和出栈涉及到栈内所有其它数据的移动 ?破坏性读出:读数据的同时也离开了堆栈 ?栈容量有限:取决于CPU内堆栈专用寄存器的数量 ?栈顶不动,数据移动 b 存储器堆栈 ?把主存的一部分作为堆栈区,称为存储器堆栈。 ?存储器堆栈的结构 ?出栈操作: SP ? (SP) +1 , A ? (Msp) ?特点: ?堆栈指示器,用于指示栈顶(空)。是CPU内部的一个寄存器 ?堆栈操作期间,堆栈中的数据不动,栈顶移动 ?非破坏性读出 ?入栈操作: Msp ? (A) , SP ? (SP) –1 7. 操作码扩展 2)操作码扩展的意义 有利于缩短指令的长度(或不增加指令长度的情况下增加指令数量) 1)指令操作码通常有两种编码格式: ?定长编码:操作码的长度固定,且集中在指令字的一个字段中。 ?哈弗曼编码:根据指令的使用频度设计操作码字段长度,频度高的指令操作码字段短(属于定长扩展,4-8-12 or 3-6-9)。 ?变长扩展格式:操作码向地址码字段扩展。(介于定长和哈弗曼编码间,属于不定长扩展) 3)操作码扩展的基本要求 ?短码不能是长码的前缀 ?操作码不能重复 ?各类指令的格式应规整(体会:4-8-12 or 3-6-9 ) 例1 哈夫曼压缩,某机器指令使用频率如下: I1 I2 I3 I4 I5 I6 I7 Pi 0.4 0.3 0.15 0.05 0.04 0.03 0.03 编制全哈夫曼码OP 解:先构造Huffman树 Pi 哈夫曼OP OP长度li 扩展哈夫曼OP Opli I1 0.4 0 1 00 2 I2 0.3 10 2 01 2 I3 0.15 110 3 10 2 I4 0.05 11100 5 1100 4 I5 0.04 11101 5 1101 4 I6 0.03 11110 5 1110 4 I7 0.03 11111 5 1111 4 例2 设某指令系统指令字长16位,每个地址码为6位。若二地址指令15条,一地址指令34条,则剩下零地址指令最多有多少条? 解:操作码按短到长进行扩展编码 二地址指令: (0000 – 1110) 共15条 (不扩展时为16条) 一地址指令: 1111 (000000 – 111111); (全集) 零地址指令: 1111 (100010 – 11111) (000000 –
文档评论(0)