0%

nand2tetris 6-

接下来就是软件部分了。

6

汇编编译器。

C(计算)指令有固定格式,直接替换;A(A 寄存器声明)和 L(标签)指令包含自定义符号,可以用 hash table 维护。

注意 L 指令定义的标签是全局生效的,可以在前文跳转到后文定义的标签。因此采用 2-pass,即读取两遍,先后处理 L 指令、A / C 指令。

我用 C 语言完成了这个项目。写 C 需要考虑很多细节问题,我没有系统学过,写得很不规范。之后得补课了。