问题标签 [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.
hdl - 有符号二进制数乘法-芯片HDL代码
作为 Nand2Tetris 课程的一部分,我正在学习这个学期,我必须构建一个二进制数乘法芯片。
我已经构建了一些芯片,它可能可以很好地处理大多数情况。
但是当我将数字相乘 -5 和 -2 时,它会出现一些错误。
它给了我-32758。
这是HDL代码:
有人知道是什么问题吗?
谢谢!
hdl - HDL 中的多路复用器(8 位输入和 4 位输出)
如果 sel = false,则 out 应包含 in 的低 4 位(即 in[0]、in[1]、in[2]、in[3])
如果 sel = true,则 out 应包含高 4 -in 的位(即 in[4]、in[5]、in[6]、in[7])
这是我的代码以及如何修改它....?
hdl - 如何在HDL中制作位选择芯片?
BitSelect芯片具有:3 位输入和 8 位输出。
如何实现下面真值表描述的行为?
regex - 有没有办法正则表达式匹配`|`运算符中的所有标记组合
我正在为nand2tetris项目做一个解析器。我想检查目标字段是否是,M|D|MD|A|AM|AD|AMD
以及它们的不同组合方式,例如MA
not only AM
。
此正则表达式正确匹配AM=
,但不匹配MA=
。
我不想列出这些标记的所有可能组合,有没有办法简单地做到这一点?
c# - C# 打开作为参数传递的文件流 (Nand2Tetris Project 7)
关于 Nand2Tetris 课程,我已经完成了书中的项目 7,作为一个巨大的 C# 菜鸟,我想我会尝试用这种语言来实现它作为练习。具体来说,我正在尝试遵循 Parser 模块的规范,但我已经在第一步中遇到了困难,这表明 Parser 的构造函数具有:
- 参数:输入文件/流
- 功能:打开输入文件/流并准备解析它
到目前为止,我的主程序(Program.cs)是:
而解析器模块(Parser.cs)是:
我不知道这是否是构建 C# 程序的正确方法,但我的谷歌搜索已将我引向它,并且 Program.cs 和 Parser.cs 似乎可以毫无问题地集成。
问题是在 Parser 模块中,我试图将文件流作为参数,以便我可以在其构造函数中打开它。因此,我在 Program.cs 中使用File.Create()
,尝试File.Open()
为 Parser 模块保留。这是因为,正如书中所述,在 Parser 的构造函数中,我必须实际打开文件流,也就是说,我不应该在 Program.cs 中打开它。但是每个打开文件的 C# 示例都需要一个字符串路径作为它的第一个参数,我已经在 Program.cs 中提供了它。所以我不确定如何在项目中实施这第一步。任何帮助表示赞赏。
谢谢
virtual-machine - 由 Jack 中的 getter mwthod 导致 VMEmulator 中的“段空间不足”错误
我正在为 nand2tetris 做一个项目。我们在 Jack 中编写一个程序并在 VMEmulator 上对其进行测试。该类如下所示:
它有一个私有变量data
和一个指针next
。所以我写了 getter 和 setter 方法来返回这些值。其他方法都很好,只是getdata()
方法不正确。当它通过 VMEmulator 运行时,它会显示错误Out of segment space in List.getdata.3
。这显示在 VMEmulator 中。
错误在第 4 行return
。当我更改 Jack 代码时,同样的错误仍然出现在第 4 行。
我的getter方法到底有什么问题?
cpu-architecture - 实现逻辑门的直觉
我被要求用半 HDL 语言实现逻辑门以进行练习。问题是我对实现缺乏直觉,并且看不到将真值表“转换”为逻辑门的方法或算法,即使是更简单的逻辑门(如 XOR);如何将一个运算符“转换”为多个逻辑门的形式?到现在为止,这个练习感觉就像“尝试所有可能的逻辑门组合”,我想它不会是这样的。
assembly - 我想知道如何计算计算机系统中给定虚拟机命令的跳转指令
我正在学习 Hack 汇编语言和跳转指令。谁能给我详细的解释,说明如何计算给定虚拟机代码的跳转指令。如果我有虚拟机命令,例如 push constant 0,我想了解如何找到跳转指令。
请给我详细的解释,以便我学习!
示例:虚拟机命令为“ push constant 0
”。
如何从 THAT COMMAND 到以下书面 JUMP INSTRUCTIONS:
上面的跳转指令只是一个例子,不是答案。
assembly - Nand2tetris Project4- 测试失败 - Fill.asm:第 3 行比较失败
没有过多提及Nand2tetris课程和上传与键盘交互的程序集文件。
基本上这个程序的作用是当在键盘上按下一个键时屏幕变黑,即屏幕的每个像素都应该变黑,当键盘空闲时屏幕保持白色。
这是我的代码,它在我的计算机硬件模拟器上运行良好,但是当我将其上传到 coursera 上提交时失败。
我哪里错了?比较失败的原因是什么,我该如何解决?提前致谢