- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型机原理与程序设计 第2讲 中央处理单元--CPU 指令格式 从二进制位串上讲,一条指令中包含两部分:操作码(Operation Code)和地址码(Address Code)。其中操作码表明了指令的操作性质及功能,地址码则给出了操作数的地址(即操作数的存储位置)。 指令是指示计算机执行某些操作的命令。一台计算机的所有指令的集合构成该机的指令系统,也称指令集。指令系统是计算机的主要属性,位于硬件和软件的交界面上 1 指令系统 (1)地址码结构 计算机执行一条指令所需要的全部信息都必须包含在指令中。对于一般的双操作数运算类指令来说,除去操作码之外,指令还应包含以下信息: 第一操作数地址,用A1表示。 第二操作数地址,用A2表示。 操作结果存放地址,用A3表示。 下条将要执行指令的地址,用A4表示。 这样,一条指令的格式可以细分为(OP表示具体的操作,Ai表示地址): OP A1 A2 A3 A4 指令的含义: (A1) OP (A2) → A3 下条将要执行指令存储在地址为A4开始的存储单元 优点:四地址指令格式的具有直观,下条指令的地址明显 缺点:指令长度较长,占用的存储空间较大。 如果将指令按顺序依次存储在存储器中,用一个程序计数器(Program Counter,PC)来存放指令地址。通常每执行一条指令,PC就自动加1(设每条指令只占一个主存单元),直接得到将要执行的下一条指令的地址。 OP A1 A2 A3 指令的含义: (A1) OP (A2 ) → A3 (PC) + 1 → PC (隐含) 执行一条三地址的双操作数运算指令,至少需要访问4次主存。第一次取指令本身,第二次取第一操作数,第三次取第二操作数,第四次保存运算结果。这种格式省去了一个地址,但指令长度仍比较长,所以在微型计算机中很少使用。 三地址指令执行完后,主存中的两个操作数均不会被破坏。然而,通常并不一定需要完整的保留两个操作数。如果让第一操作数地址同时兼作存放结果的地址(目的地址),这样即得到了二地址指令,其格式为: OP A1 A2 指令的含义: (A1) OP (A2 ) → A1 (PC) + 1 → PC (隐含) 通常把A1称为目的操作数地址,A2称为源操作数地址。执行一条二地址的双操作数运算指令,同样至少需要访问4次主存。 只有一个地址的指令为一地址指令。那么另一个操作数来自何方呢?指令中虽未明显给出,但隐含着放在CPU内部的一个特殊存储器(专门寄存器)中的操作数。因为这个寄存器在连续性运算时,保存着多条指令连续操作的累计结果,故称为累加寄存器(Accumulator,Acc)。 它的指令格式为: OP A1 指令的含义: (Acc) OP (A1) → Acc (PC) + 1 → PC (隐含) 执行一条一地址的双操作数运算指令,只需要访问两次主存。第一次取指令本身,第二次取第二操作数。第一操作数和运算结果都放在累加寄存器中,所以读取和存入都不需要访问存储器。 (2)操作码 指令系统中的每一条指令都有一个唯一确定的操作码,指令不同,其操作码的编码也不同。通常,希望用尽可能短的操作码字段来表达全部的指令。指令操作码的编码可以分为定长编码和变长编码两类。 定长编码是一种最简单的编码方法,操作码字段的位数和位置是固定的。为了能表示整个指令系统中的全部指令,指令的操作码字段应当具有足够的位数。定长编码对于简化硬件设计、减少指令译码的时间是非常有利的,在字长较长的大、中型计算机及超级小型计算机上广泛采用。 变长编码的操作码字段的位数不固定,且分散地放在指令字的不同位置上。这种方式能够有效地压缩指令中操作码字段的平均长度,在字长较短的微型计算机上广泛采用。 最常用的非规整型编码方式是扩展操作码法。因为如果指令长度一定,则地址码与操作码字段的长度是相互制约的。为了解决这一矛盾,让操作数地址个数多的指令(三地址指令)的操作码字段短些,操作数地址个数少的指令(一或零地址指令)的操作码字段长些,这样既能充分地利用指令的各个字段,又能在不增加指令长度的情况下扩展操作码的位数,使它能表示更多的指令。 例如:设某计算机的指令长度为16位,操作码字段为4位,有3个4位的地址码字段,其格式为: 如果按照定长编码的方法,4位操作码最多只能表示16条不同的三地址指令。假设指令系统中不仅有三地址指令,还有
文档评论(0)