2015-11-06 71 views
0

我一直在阅读关于8085的程序计数器。这material这里指出,程序计数器的功能是指向下一个字节将被提取的内存地址。当一个字节(机器码)被提取时,程序计数器加1以指向下一个存储单元。 我的问题是如何处理条件,如果指令大小变化。假设当前指令是3个字节,那么PC应指向当前地址+3。 PC如何知道当前指令的大小? 我是新来的8085,任何帮助将不胜感激。 谢谢程序如何在8085计数器实际工作?

+0

您确定它没有像RISC体系结构那样只有相同大小的指令吗?编辑:没关系,它有3类基于大小的说明。 – Aaron

+0

@Aaron:不,8080(和追随者)是典型的CICS机器。对于OP:需要检查/解码第一个字节以确定需要读取的“额外”字节的数量。在实践中(比如说386等),更新的cics机器实际上以更大的块(比如4个字节)读取指令流,然后对它进行解码。 – joop

+0

@joop如何确定额外的字节主要是我的问题。 – Ravi

回答

1

你引用的材料并没有特别说明关于这个问题的任何事情 - 它说的是当一个字节被提取时PC增加了,这是正确的(它没有说没有多个字节到指令)。

通常情况下,CPU会递增程序计数器以指向下一条指令。

更确切地说,在指令解码阶段,CPU将读取指令需要的字节数,并相应增加PC。

+0

但8085有1-3字节的指令大小。 PC如何根据指令知道要指向哪个地址? – Ravi

+0

PC不知道,但CPU确实 - 看到我更新的答案。 –

+0

CPU有内置的表格(或相当的表格),告诉它何时看到指令的第一个字节,是否需要另外一个字节来编码它,等等。 –