第七章指令系统讲述.ppt

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

第7章 指 令 系 统 例 7.1 假设计算机指令字长16位,操作数的地址码是6位,指令有零地址、一地址和二地址三种格式。 (1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种? (2) 采用扩展操作码技术,若二地址指令有X种,零地址指令Y种,则一地址指令最多有几种? 分析 (1) 固定操作码格式下,地址码为6位,由二地址码得操作码为4位。因操作码固定,由此所有的操作码共24=16种指令,而零地址指令和一地址指令各占去P和Q种, 则二地址指令有: 16-P-Q (2) 扩展操作码时,二地址指令每少一种则可多构成26种一地址指令,一地址指令每少一种则可多构成26种零地址指令。 二地址指令最多有24 ,而现有X种,则可构成一地址指令最多有(24 - X) × 26 设一地址指令有M种,则零地址指令有 [(24 - X) × 26-M] × 26 而现有零地址指令Y种,故有 Y= [(24 - X) × 26-M] × 26 解之,得M= (24 - X) × 26-Y × 2-6 7.2 操作数类型和操作种类 7.3 寻 址 方 式 例 7.2设相对寻址的转移指令占3个字节,第一个字节为操作码,第二、三个字节为相对位移量(补码表示),数据在存储器中采用低字节为字地址的存放方式,每当CPU从存储器取出一个字节时,即自动完成(PC) +1→PC。 (1) 若PC当前值为240D,要求转移到290D,则转移指令的第二、三个字节的机器代码是什么? (2)若PC当前值为240D,要求转移到200D,则转移指令的第二、三个字节的机器代码是什么? (1)PC当前的值为240, 当取出指令(指令占3个字节)后,PC=243。 要求转移到290,则相对位移量为290-243=47D=2FH。 因数据在存储器采用低字节地址为字地址,故位移量在存储器中为2FH,00H,即为指令的第二、三个字节的内容。 例7.3一条双字长直接寻址的子程序调用指令,其第一个字为操作码和寻址特征,第二个字为地址码5000H。假设PC当前值为2000H,SP的内容为0100H,栈顶内容为2746H,存储器按字节编址,而且进栈操作时执行(SP)-△-P,后存入数据。试回答下列几种情况下,PC、SP及栈顶内容各为多少? (1) CALL指令被读取前。 (2) CALL指令被执行后。 (3) 子程序返回后。 解CALL指令被读取前,PC=2000H,SP=0100H,栈顶内容为2746H。 (1) CALL指令被执行后,由于存储器按字节编制,CALL指令供占4个字节,故程序断点2004H进栈,此时SP=(SP)-2=00FEH,栈顶内容为2004H,PC被更新为子程序入口地址5000H。 (2) 子程序返回后,程序断点出栈,PC=2004H,SP被修改为0100H,栈顶内容为2746H。 7.4 指令格式举例 三、指令格式设计举例 例 7.4 某机器字长为16位,存储器直接寻址空间为128字,变址时的位移量为-64-+63,16个通用寄存器均可作为变址寄存器。设计一套指令系统格式,满足下列寻址类型的要求。 (1) 直接寻址的二地址指令3条;(2) 变址寻址的一地址指令6条; (3) 寄存器寻址的二地址指令8条; (4) 直接寻址的一地址指令12条;(5) 零地址指令32条。 问:还有多少种代码未用?若安排寄存器寻址的一地址指令,还能容纳多少条? 解: (1) 直接寻址的二地址指令中,寻址空间为128字,则需要的地址位为7位; 二地址指令的格式 (2) 变址寻址的一地址指令6条,变址时的位移量为-64-+63,则需占用7位;变址寻址要用到寄存器,可用者为16个,则寄存器的编号需占4位。则变址寻址的一地址指令的格式为: (3) 寄存器寻址的二地址指令中,二地址为寄存器的编号,各占4位,此类指令的格式为: (5) 零地址指令是16位均为操作码,比上一类指令多出7位,而上一类指令余下有4个编码, 则零地址指令最多有4×27=29=512种 现只用了32条,余512-32=480条。 其中最末4位用于寄存器的编码,则用于操作码的编码为00010~11111,共30个编码。 例 7.5设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位。 (1) 若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围为多少?一次间接寻址的寻址范围是多少?画出其指令格式并说明各字段的含义。 (2) 若存储字长不变,可采用什么方法直接访问容量为16MB的主存? 解: (1) 单字长指令能完成105种操作,

文档评论(0)

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

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

1亿VIP精品文档

相关文档