问题标签 [nand2tetris]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

nand2tetris - HDL如何允许输入引脚而不是内部引脚被索引?

这是一个例子来说明我的意思。如果我在我的 中包含以下内容ALU,则无效:

但是……如果我把那个代码块做成自己的Or16Way芯片,

然后在 中使用它ALU

一切安好。为什么是这样?在一种情况下,我索引了输入引脚,在另一种情况下,我索引了内部引脚。为什么一个允许,另一个不允许?

0 投票
2 回答
225 浏览

hardware - 遇到[0]:使用Not实现Not16时,可能无法使用内部节点的子总线

当我Not16Not门实现时:

我在第一部分收到错误“[0]:可能无法使用内部节点的子总线”。

然而,用 16 个 Nand 门来实现这个是很好的:

有人可以指出问题和区别。

ps 使用Nand2Tetris 中的 HardwareSimulator

0 投票
1 回答
338 浏览

assembly - 理解 Hack 汇编语言代码

我的老师给了我这个示例代码来学习,我仍然不明白,与汇编语言代码和nand2tetris有关。有人可以解释吗?

更新:(我发布了整个代码)

--> 谢谢,也许有不同的解释我就能得到它:") 我还是个新手请多多包涵

0 投票
2 回答
31 浏览

hdl - 为什么 DMux4way 会这样操作?

当sel为01时应该选择b,但为什么操作是a = nsel1 b = sel[0]?之后,sel 将从 01 变为 00

}

0 投票
1 回答
247 浏览

java - 无法运行 Nand2Tetris 硬件模拟器

我正在尝试 Nand2Tetris 课程,并且已经到了想要使用硬件模拟器运行和测试 hdl 文件的地步。我下载了软件套装,按照以下说明运行:

我尝试使用以下命令运行脚本: ./HardwareSimulator.sh

并收到以下错误:

我不明白似乎是什么问题以及为什么它(Unknown Source)在最后陈述。

在网上寻找解决方案时,我看到这篇文章中的 openjdk 可能有问题。我也找到了这篇文章,但它对我也没有多大帮助。

我是一个相对较新的 Linux 用户,目前在 pop OS 上。

我真的很想得到一些帮助,因为我不确定我应该怎么做才能解决问题以及如何继续课程

提前致谢。

0 投票
1 回答
54 浏览

assembly - 关于Power.asm的实现

执行幂的汇编代码: • 实现一个汇编程序来计算给定数 n 的指数幂,P(n,e)。o 例如。如果 n = 2 且 e = 5,则 P(n,e) 将 = 2 2 2 2 2 = 32。 • 用户应将数字 n 的值输入 R0。即 RAM[0] 和 e 进入 R1 即 RAM[1]。• 结果P(n,e) 应保存在RAM[2] 中。• 特殊情况:如果e 为零,您的程序应在RAM[0] 中存储1 并结束程序。

一直在做一些关于asm的研究。对于 power.asm 上的这个特殊问题,给出了一个示例答案,如下所示,虽然我不太明白,比如为什么在 M=0 和 @1 之前有一个 @2?有人能帮我解释一下power.asm上的这段代码吗?谢谢你。

0 投票
0 回答
27 浏览

nand2tetris - 在 Hack Assembly 中处理函数 Return 时使用 ReturnAddress

我一直在研究 Nand2Tetris 第 2 部分,第 2 模块,在那里我试图弄清楚该函数如何在 hack 程序集中返回一个值。按照导师的说法,他是这样说的:

在此处输入图像描述

所以最后一个汇编代码说我们必须转到 ReturnAddress,根据我的理解,这是堆栈将进一步继续执行的地方。但是在前面的命令中,它清楚地说明了两件事:

  1. *ARG = 流行()
  2. SP = ARG + 1;

所以 SP - 堆栈指针将在参数 0 之后。指令还说明了以下内容:“一旦我将 SP 设置在 ARG 以下,我基本上就隐含地传达了 SP 以下的一切都只是游戏。 ”我真的不明白怎么会程序从 ReturnAddress 继续,但它不会从 SP 开始吗?

在他们的讨论论坛中,出现了这个问题,但我仍然对 RetAddress 的真正用途以及如何使用它感到迷茫。

在此处输入图像描述

我真的很感激任何帮助。我在这里想念什么?

0 投票
2 回答
75 浏览

nand2tetris - VMEmulator Nand2Tetris

我目前正在处理 Nand2Tetris 上的项目 7,当 VM 模拟器加载 .asm 文件时,我遇到了错误:

我认为 SP 是一个预定义的符号,指向 RAM 中的堆栈指针;在这种情况下,我该如何解决这个错误?

0 投票
0 回答
16 浏览

jack - 在子程序中插入:预期(Jack 编程语言中的错误

我收到错误

在 BinarySearchTree.jack(第 20 行)中:在子例程中插入:预期(
在 BinarySearchTree.jack(第 25 行)中:在子例程中插入:预期(我有 2 个类,节点:

和 BinarySearchTree:

我该如何解决这个错误?

0 投票
1 回答
34 浏览

hdl - 为什么代码行的顺序在硬件描述语言中无关紧要?

根据 nand2tetris 课程材料,“由于该语言旨在描述连接而不是过程,因此 PARTS 语句的顺序无关紧要:只要芯片部件连接正确,芯片就会按规定运行。”

考虑到进位位是使用先前位计算的进位位计算的,下面的代码序列如何无关紧要?