两个程序计数器寄存器如何在6502中工作?

时间:2017-10-09 12:49:47

标签: 6502 program-counter

我目前正在LogiSim中开发6502的子集,在目前阶段,我正在确定要实施哪些部分以及可以削减哪些部分。我的主要资源之一是Hanson's Block Diagram

我目前正在尝试确定增量逻辑的工作原理。在我之前在学校工作的项目中,程序计数器通过来自解码指令存储器的单个指令递增。在此图中,程序计数器逻辑看起来与我之前遇到的工作方式不同。

The portion that is confusing

这个逻辑究竟是如何工作的,它是否使用指令存储器中的指令来递增?作为后续,是否有可能简化程序计数器逻辑以使用指令存储器中的一条或两条指令来递增?

1 个答案:

答案 0 :(得分:1)

6502仅具有一个程序计数器。它是16位宽。因为CPU中的许多其他内容正好是8位宽,所以将16位程序计数器切成两半是硬件意义,因此每一半都适合8位。特别是由于程序计数器的上半部分很少更改。

这些一半在内部仅称为PCHPCL。您可以看到PCL附加有递增逻辑,并且输出之一是称为PCLC的进位信号。这是另一个电路的输入,该电路使PCH递增。

与程序无关。程序只关心PC指向下一步将要执行的指令,并使用该事实影响其自身的流程。但是,如果您有兴趣了解更多这些细节,我将为您介绍Visual6502仿真。它比汉森的框图更加准确和详细。