Loading... ## Nand2Tetris配置 官方使用指导见:https://www.nand2tetris.org/software Nand2Tetris提供了两种使用方式: - 在线IDE:访问[NAND2Tetris](https://nand2tetris.github.io/web-ide/chip/)即可直接在线使用(官方推荐使用) - 优点: - 提供代码高亮 - 无需复杂的环境配置 - 缺点: - 储存在浏览器缓存中,内容可能丢失 - 本地版本:参考下方步骤配置(作者推荐使用,本教程主要介绍此方式) - 优点: - 可以自行封装CHIP - 文件独立存储 - 缺点 - 环境配置较为复杂 - 无代码高亮 ## 本地部署 官方教程:https://drive.google.com/open?id=1IkIR8Pwq3PY49QgXpUJOkUUVht-TKIET&usp=drive_fs ### Windows部署 首先从[nand2tetris.zip - Google 云端硬盘](https://drive.google.com/file/d/1xZzcMIUETv3u3sdpM_oTJSTetpVee3KZ/view)下载Nand2Tetris的压缩包(或者从[此处](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/3602405626.zip)获取副本) 下载完成后,将文件解压至一个空文件夹中,可获得如下的目录结构: ![Snipaste_2024-12-13_11-29-05.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/3806048262.png) 此时,打开tools文件夹,双击运行HardwareSimulator.bat ![Snipaste_2024-12-13_11-31-03.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/543815573.png) 如果显示如下图,则配置完成 ![Snipaste_2024-12-13_11-31-59.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/1341109952.png) 如果提示“windows找不到文件'javaw'。请确定文件名是否正确后,再试一次。”,则需要单独安装java环境,可从[Download Java for Windows](https://www.java.com/en/download/)此处下载最新版的java安装程序并安装即可(也可从其他国内镜像站下载jre安装程序) ![Snipaste_2024-12-13_11-35-46.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/3530976357.png) ### MacOS部署 官方教程:https://drive.google.com/file/d/1QDYIvriWBS_ARntfmZ5E856OEPpE4j1F/view?usp=drive_open 首先打开终端,输入 `java -version` 如果出现类似 `java version "1.8.0_31"`的提示,则说明已经安装了java环境,无需重新配置 如果没有出现提示,并弹出窗口,则说明没有安装java环境,点击按钮后可以前往网页下载并安装java环境 完成java环境的安装后,从[nand2tetris.zip - Google 云端硬盘](https://drive.google.com/file/d/1xZzcMIUETv3u3sdpM_oTJSTetpVee3KZ/view)下载Nand2Tetris的压缩包(或者从[此处](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/3602405626.zip)获取副本)并双击解压。 将解压完成的内容剪切粘贴至桌面名为nand2tetris的文件夹中,在终端中执行以下指令: ```bash ~/Desktop/nand2tetris/tools/HardwareSimulator.sh ``` 可以启动硬件模拟器(HardwareSimulator),此后每次启动都需要使用上方的指令 其中,最后的部分可以替换为下面的值 | 中文名 | 英文名 | 替换值 | | ------------ | ------------------- | ------------------------ | | 硬件仿真器 | HardwareSimulator | `HardwareSimulator.sh` | | CPU仿真器 | CPU Emulator | `CPUEmulator.sh` | | 汇编器 | Assembler | `Assembler.sh` | | VM仿真器 | VM Emulator | `VMEmulator.sh` | | Jack编译器 | Jack Compiler | `JackCompiler.sh` | 如果提示 `Permission Dednied`,请先使用以下指令再执行上方的指令 ```bash chmod u+x ~/Desktop/nand2tetris/tools/HardwareSimulator.sh ``` 至此,Nand2Tetris本地部署已经完成 #### 可选配置 如果觉得启动比较麻烦,可以考虑将文件夹添加至环境变量,执行下方的指令: ```bash echo "export PATH=$PATH:~/Desktop/nand2tetris/tools" >> ~/.bash_profile ; source ~/.bash_profile ``` 如果使用的是MacOS Catalina或者更新的版本,应该使用下方的指令: ```bash echo "export PATH=$PATH:~/Desktop/nand2tetris/tools" >> ~/.zshrc ; source ~/. zshrc ``` 这样,就可以简单的启动软件了: ```bash HardwareSimulator.sh ``` ## 编辑器 Nand2Tetris并没有提供直接的本地编辑器,所有代码文件可以使用记事本(Notepad)、Notepad++、VSCode等文本编辑器打开 但是只有在线版编辑器支持代码高亮、代码补全等功能,因此对于本地部署的环境而言,没有区别 ## 目录结构解释 ![Snipaste_2024-12-13_12-03-43.png](https://blog.ivan-hanloth.cn/usr/uploads/2024/12/3784271083.png) nand2tetris默认目录结构如上图所示, - projects目录为所有nand2tetris提供的项目代码所在的文件夹 - tools目录为所有模拟器所在位置及其依赖 - bin目录由一些java类文件和依赖文件构成 - builtInChips和builtInVMCode目录包括一些内置的chip文件和vmcode文件 - OS目录包含了一个已经编译完成的jack操作系统 - .bat和.sh文件是主要的软件执行脚本,解释如下: | 中文名 | 英文名 | 文件名 | | ------------ | ------------------- | ------------------------------------------------- | | 硬件仿真器 | HardwareSimulator | `HardwareSimulator.bat`及`HardwareSimulator.sh` | | CPU仿真器 | CPU Emulator | `CPUEmulator.sh`及`CPUEmulator.sh` | | 汇编器 | Assembler | `Assembler.sh`及`Assembler.sh` | | VM仿真器 | VM Emulator | `VMEmulator.sh`及`VMEmulator.sh` | | Jack编译器 | Jack Compiler | `JackCompiler.sh`及`JackCompiler.sh` | 其中,`.bat`文件是Windows系统下使用的,`.sh`文件是MacOS系统下使用的 ## 软件介绍 **硬件仿真器(HardwareSimulator)**:用于创建芯片。功能内置HDL编辑器和所有必要的服务,模拟和测试芯片。相关项目: 1、2、3、5。 **CPU仿真器(CPU Emulator)**:模拟Hack计算机(CPU, RAM, ROM,屏幕,键盘)。允许用存储在文件中的机器语言代码加载计算机,或将机器语言代码直接输入指令存储器。内置汇编器,如果加载/输入的代码是用Hack汇编语言编写的,则自动调用该汇编器。相关项目:4、7、8、9。 **汇编器(Assembler)**:用于将用Hack汇编语言编写的程序翻译成用Hack二进制代码编写的代码。相关项目:4、6。 **VM仿真器(VM Emulator)**:用于两个目的:(i)实验VM命令和VM代码段,并学习它们如何在主机RAM上实现,以及(ii)执行编译的Jack程序。包括一个内置的Jack OS实现。相关项目:7、8、9、11、12 **Jack编译器(Jack Compiler)**:用于编写Jack程序并将其翻译成VM代码。然后可以将后者加载到VM模拟器中并由其执行。相关项目:9、12 **位图编辑器(Bitmap editor,仅在在线版可用)**:用于设计视觉元素(如精灵sprites)并生成Hack或Jack代码以在内存中实现它们。可以用来帮助开发电脑游戏,以及通常使用图形和动画的程序。相关项目:9; Last modification:December 16, 2024 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的文章对你有用,请随意赞赏