nand2tetris 16bit PC 使用 8bit 寄存器

Posted

技术标签:

【中文标题】nand2tetris 16bit PC 使用 8bit 寄存器【英文标题】:nand2tetris 16bit PC using 8bit registers 【发布时间】:2020-10-30 14:50:41 【问题描述】:

我被要求从 nand2tetris 课程中使用 2 个 8 位寄存器而不是 1 个 16 位寄存器来制作 16 位 PC。我需要让这 2 个 8 位寄存器充当 1 个 16 位寄存器。我似乎无法让它工作,任何帮助都会非常有用。 注册(in=cout, out=out[0..7], out=feedback, load=true); 注册(in=cout, out=out[8..15], out=feedback, load=true);

【问题讨论】:

【参考方案1】:

不知道你的 8 位寄存器是如何工作的,很难确定,但我注意到两件事:

    目前还不清楚反馈的作用,或者您为什么需要它,但您只是将两个 8 位寄存器的输出捆绑在一起。

    您没有指定 cout 的哪些位将进入每个寄存器的输入位。此外,您的复合寄存器的输入位称为 cout,这令人困惑。

【讨论】:

以上是关于nand2tetris 16bit PC 使用 8bit 寄存器的主要内容,如果未能解决你的问题,请参考以下文章

内存芯片实现中的无限循环问题 (Nand2Tetris)

Nand2tetris 中的减法实现

用汇编语言减去 16 位 2 的补码

数据加密标准(DES)2

nand2tetris CPU.cmp 第17行问题; outM/(RAM[A]) 使用 MD=D-1 指令递减两次;

如何将 Linear16 PCM wav 转换为与 g711.org 相同质量的 G711 8-bit 8-khz MULAW wav?