我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段我正在确定要实现哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson's Block Diagram .
我目前正在尝试确定增量逻辑到底是如何工作的。在我之前在学校从事的一个项目中,程序计数器通过来自解码指令存储器的单个指令递增。在此图中,程序计数器逻辑的工作方式看起来与我之前遇到的不同。
这个逻辑到底是如何工作的?它是否使用指令存储器中的指令来递增?作为后续,是否可以简化程序计数器逻辑,使用指令存储器中的一两条指令来递增?
最佳答案
6502 只有一个程序计数器。它是 16 位宽。由于 CPU 中的许多其他内容正好是 8 位宽,因此将 16 位程序计数器切成两半是硬件上有意义的,这样每一半都适合 8 位。例如,每一半都是使用 JMP
等指令单独加载的。相关分支指令将 PCL
带到 ALU 输入。
这些部分在内部称为PCH
和PCL
。您可以看到,PCL
附加了增量逻辑,其中一个输出是称为 PCLC
的进位信号。这是另一个电路的输入,该电路递增PCH
。
这些对于程序来说都不重要。程序只关心 PC 指向接下来要执行的指令,并使用该事实来影响自己的流程。但如果您有兴趣了解更多这些细节,我将向您介绍 Visual6502 模拟。它比汉森的框图更加准确和详细。
关于6502 - 6502 中的两个程序计数器寄存器如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646929/