第三章指令系统说课.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 指令系统 3.1 指令系统的定义及性能要求 3.2 指令格式及指令类型 3.3 指令和数据的编码及寻址方式 3.4 堆栈寻址方式 3.5 RISC机型 指令系统是指一台计算机所有机器指令的集合,构成了计算机的机器语言,是计算机硬件与上层软件的接口。计算机的指令系统决定了计算机的CPU的功能和结构。CISC和RISC是现代两大典型指令系统体系结构。设计一台机器的指令系统应考虑到其完备性和完整性、兼容性、均匀性、可扩充性。 指令分类:依据操作数个数来分 指令中地址个数的选取要考虑诸多的因素。从缩短程序长度,用户使用方便,增加操作并行度等方面来看,选用三地址指令格式较好;从缩短指令长度,减少访存次数,简化硬件设计等方面来看,一地址指令格式较好。对于同一个问题,用三地址指令编写的程序最短,但指令长度最长,而用二、一、零地址指令来编写程序,程序的长度一个比一个长,但指令的长度一个比一个短。 双操作数运算类指令的执行 对于双操作数运算类指令(如加法指令)来说,每条指令中都需要包含以下4 个地址信息: ① 第一操作数地址A1 ; ② 第二操作数地址A2 ; ③ 操作结果存放地址A3 ; ④ 下条将要执行指令的地址A4 。 这些地址信息可以明显地给出,称为显地址;也可以依照某种事先的约定,用隐含的方式给出,称为隐地址。 (1) 三地址双操作数指令 三地址双操作数指令有3 个显地址,指令的含义为: (A1 )OP(A2 ) → A3 假设指令存放在主存的50 号单元中,第一、第二操作数分别存放在主存的100 和200 号单元中,结果存放在主存的300 号单元,如图 所示。 (2) 二地址双操作数指令 二地址双操作数指令有两个显地址,第一操作数地址同时兼作结果存放地址(目的地址) ,指令的含义为 (A1 )OP(A2 ) → A1 (3) 一地址双操作数指令 一地址双操作数指令只有一个显地址,参加运算的另一个操作数来自累加寄存器Acc 。指令的含义为: (Acc)OP(A1 ) → Acc (4) 零地址双操作数指令 零地址双操作数指令中只有操作码字段,操作数地址都是隐含的。操作数在堆栈的栈顶位置和次栈顶位置,它们分别从堆栈中弹出,送到运算器中进行运算,运算的结果再压入堆栈。执行一条零地址的加法指令访问主存的次数取决于堆栈的结构。 举例 例:分别利用三地址、二地址、一地址和零地址指令编制计算算术表达式x = (a×b+ c - d) ÷ (e+ f)的程序。 解:假设a、b 、c 表示操作数,A 、B 、C 表示操作数所在存储地址。 (1) 三地址指令程序 MUL   A ,B ,X ADD   X ,C ,X SUB   X ,D ,X ADD   E ,F ,Y DIV   X ,Y ,X 共需5 条三地址指令,每条指令4 次访存,执行此程序共访存20 次。 (2) 二地址指令程序 MOV   X ,A MUL   X ,B ADD   X ,C SUB   X ,D MOV   Y ,E ADD   Y ,F DIV   X ,Y 共需7 条二地址指令,MOV 指令3 次访存,算术运算指令4 次访存,执行此程序共访存2 × 3 + 5 × 4 = 26 次。 (3) 一地址指令程序 LOAD  E ADD   F STORE X LOAD  A MUL   B ADD   C SUB   D DIV   X STORE X 共需9 条一地址指令,每条指令2 次访存,执行此程序共访存9 × 2 = 18 次。 (4) 零地址指令程序 PUSH   A PUSH   B MUL PUSH   C ADD PUSH   D SUB PUSH   E PUSH   F ADD DIV POP   X 共需12 条指令,其中7 条一地址的进、出栈指令,5 条零地址的算术运算指令。进、出栈指令3 次访存,算逻指令4 次访存,执行此程序共访存7 × 3 + 5 × 4 = 41 次。 例:  某一机器的指令系统,操作码8 位,地址码均为16 位,CPU 与主存之间每次传送16 位数据。A 、B 、C 、D 、E 表示字地址,存放16 位数据。 (1) 分别用三地址、二地址、一地址和零地址指令编写程序,计算A = (B - C) × (D -E)(不允许覆盖任何操作数,可以使用暂存单元) 。 (2)

文档评论(0)

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

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

1亿VIP精品文档

相关文档