8ug[高等教育]指令系统复习.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8ug[高等教育]指令系统复习

指令系统复习 1. 某计算机有10条指令,它们的使用频率分别为0.30, 0.20, 0.16, 0.09, 0.08, 0.07, 0.04, 0.03, 0.02, 0.01 (1) 用霍夫曼编码对它们的操作码进行编码,并计算平均代码长度。 (2) 用扩展霍夫曼编码法对操作码进行编码,限两种操作码长度,并计算平均代码长度。 2.某模型机有8条指令,使用频率分别为:0.3, 0.3, 0.2, 0.1, 0.05, 0.02, 0.02, 0.01。试用霍夫曼(Huffman)编码方法对其操作码进行编码,并计算其平均编码长度比定长操作码(用普通编码法编码)的平均编码长度减少多少? 3. 若某计算机要求有如下形式的指令:三地址指令8条,二地址指令126条,单地址指令32条(不要求有零地址指令)。设指令字长为16位,每个地址码长为4位,试用扩展操作码为其编码。 4.若某机要求有如下形式的指令:三地址指令4条,单地址指令255条,零地址指令16条(不要求有二地址指令)。设指令字长为12位,每个地址码长为3位,问能否以扩展操作码为其编码?如果其中单地址指令为254条呢?说明其理由。 5.一条双字长的load指令存储在地址为200和201的存储位置,该指令将地址码指定的存储器内容装入累加器AC。指令的第一个字指定操作码和寻址方式,第二个字是地址部分。PC寄存器的值是200。通用寄存器R1的值是400,变址寄存器XR的内容是100。指出在各种寻址方式访问的数据。 解:指令的寻址方式字段可指定任何一种寻址方式。 在直接寻址方式下,有效地址是指令中的地址码部分内容500,装入AC的操作数是800。 在立即数寻址方式下,指令的地址码部分就是操作数而不是地址,所以将500装入AC。 在间接寻址方式下,操作数的有效地址存储在地址为500的单元中,由此得到有效地址800,操作数是300。 在相对寻址方式下,有效地址是500+202=702,所以操作数是325。这里要注意的是,在该指令的执行阶段,PC寄存器的内容已经更新为下一条指令的地址202。 6.一条双字长的指令存储在地址为W的存储器中。指令的地址字段位于地址为W+1处,用Y表示。在指令执行中使用的操作数存储在地址为Z的位置。在一个变址寄存器中包含X的值。试叙述Z是怎样根据其他地址计算得到的,假定寻址方式为 (1) 直接寻址 (2) 间接寻址 (3) 相对寻址 (4) 变址寻址 解:根据题意画出如下示意图: (1) 在直接寻址方式下,指令中存放的就是操作数的地址。即操作数的地址Z在地址为W+1处,Z从指令中得到,所以有Z=Y。 (2) 在存储器间接寻址方式下,操作数的地址在某一个存储单元中,其地址在指令中。Z根据Y访存后得到,所以有Z = (Y)。 (3) 在相对寻址方式下,操作数的地址为PC的值(取完指令后PC的值为W+2)加上Y得到。所以有Z=W+Y+2。 (4) 在变址寻址方式下,操作数的地址为变址寄存器的值加上Y得到。所以有Z=X+Y 7.一条相对转移指令长4个字节,存储在存储器中地址为75010的地方,转移目标地址为50010。问 (1) 指令执行之后PC的值为多少? (2) 指令的相对地址字段的值为多少? (3)如果采用补码表示相对地址字段,该指令的相对地址字段需要多少二进制位? 解:(1) 该指令读取之后PC的值更新为75410。指令执行之后PC的值为50010。 (2) 相对转移指令中的地址偏移量应为500 - 754 = -254 (3) 254 28,如果采用补码表示相对地址,加一个符号位,则可以形成前向和后向的转移,相对地址字段需要9个二进制位。 8.存储器堆栈的顶部内容是5320,堆栈向下生长,堆栈指针寄存器SP的内容是3560,一条双字长的子程序调用指令位于存储器地址1120、1121处,指令第二个字的内容是地址字段,内容为6720。问以下情况下PC、SP和栈顶的内容。 (1) 子程序调用指令被读取之前; (2) 子程序调用指令被执行之后; (3) 从子程序返回之后。 解:(1) PC=1120, SP=3560, 栈顶内容为5320; (2) 子程序调用指令被执行之后,PC的内容为子程序入口的指令地址,在该指令的地址段给出;返回指令的地址进入栈顶,这时SP减1;因为子程序调用指令为双字长,所以返回地址为子程序调用指令的地址加2,这样得PC=6720, SP=3559, 栈顶内容为1122; (3) 从子程序返回之后,将返回地址从堆栈中弹出到PC,这时SP加1,栈顶内容恢复到子程序调用指令被执行之前的值。这样,有PC=1122, SP=3560, 栈顶内容为5320

文档评论(0)

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

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

1亿VIP精品文档

相关文档