- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§5 指令系统;;§5.1 基本概念;§5.2 指令格式;§5.2.1 指令格式; OP
指令中只给出操作码,没有显地址。
这种指令有两种可能:
①不需要操作数的指令。
②隐含对累加器AC内容进行操作 ; OP A
其功能:OP(A)→A 或(AC)OP(A)→AC
一地址指令有两种常见的形态,根据操作码含义确定它究竟是哪一种。
①只有目的操作数的单操作数指令
②隐含约定目的地址双操作数指令
注意:采用隐地址(隐含约定)可以简化指令地址结构,即减少指令中的显地址数。
;(3)二地址指令格式:
OP A1 A2
其功能:(A1)OP(A2)→A1
(4)三地址指令格式:
OP A1 A2 A3
其功能:(A1)OP(A2)→A3
;;零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用;
两地址、三地址和多地址指令具有功能强,便于编程等特点,多为字长较长的大、中型机所采用。
指令的地址是由程序计数器(PC)规定的,而数据的地址是由指令规定的。;§5.2.2 指令操作码的扩展技术;例5.1:指令字长为16位,每个地址码为4位,采用扩展操作码的方式,设计15条三地址指令、15条二地址指令、15条一地址指令和16条零地址指令。
①???? 画出扩展图
②???? 画出指令译码逻辑。
【例题分析】
每个地址码为4位:
三地址占12位,15条三地址指令的操作码为4位;
二地址占8位,15条二地址指令的操作码为8位;
一地址占4位,15条一地址指令的操作码为12位;
16条零地址指令的操作码为16位;;① 操作码的扩展如下: ;②指令译码逻辑如图所示: ;例5.2:指令字长为16位,每个地址码为4位,采用扩展操作码的方式,设计15条三地址指令、14条二地址指令、31条一地址指令和16条零地址指令。
①???? 画出扩展图
②???? 画出指令译码逻辑。
【例题分析】
每个地址码为4位:
三地址占12位,15条三地址指令的操作码为4位;
二地址占8位,14条二地址指令的操作码为8位;
一地址占4位,31条一地址指令的操作码为12位;
16条零地址指令的操作码为16位;;① 操作码的扩展如下: ;②指令译码逻辑如图所示:;例5.3:某计算机指令长度为32位,有3种指令:双操作数指令、单操作数指令、无操作数指令。今采用扩展操作码的方式来设计指令,假设操作数地址为12位,己知有双操作数指令K条,单操作数指令L条,问无操作数指令有多少条?
【例题分析】
对于双操作数指令,操作码长度为(32-12×2)=8位;最多有28条,现已有K条,所以留有(28-K)个编码用于扩展到单操作数指令;
对于单操作数指令,可扩展位为20-8=12位;最多有(28-K)×212条,现已有L条,所以留有[(28-K)×212-L]个编码用于扩展到无操作数指令;
对于无操作数指令,可扩展位为32-20=12位,所以无操作数指令条数=[(28-K)×212-L] ×212;扩展操作码编码的原则:
对使用频度(指在程序中出现的概率)较高的指令,分配较短的操作码字段;
对使用频度较低的指令,分配较长的操作码字段。;;§5.2.3 指令长度与字长的关系;§5.3 数据表示;;假如存储器与运算部件间数据通路的宽度为32位(一个字),在不按边界对准的计算机中,访存指令所要求存取的数据(例如一个字),可能在两个存储单元中,因此需要访问两次存储器,而且还要对高低字节的位置进行调整,图5.2(b)的阴影部分即属这种情况。
在数据对准边界的计算机中,当以二进制来表示地址时,半字地址的最低位恒为零,字地址的最低两位为零,双字地址的最低三位为零。
;§5.4 寻址方式;例如,一种单地址指令的结构如下所示,其中X,I,D组成该指令的操作数地址。
操作码 变址 间址 形式地址
OP X I D
; (1)隐含寻址
指令中隐含着操作数的地址,EA=(PC)。
(2)立即寻址
操作数在指令中,Data=D,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。;
(3)直接寻址
指令
文档评论(0)