前置要求
热情passion.
一些环境
为什么要环境(编译环境和可视化环境)?因为我们不是从头开始造轮子,我们将利用Yale N. Patt创造出的LC-3计算机的架构复现一遍。但是我们将站在一个发明者的视角。环境可以帮助我们学习和分析,并把我们头脑中的数据流动展现出来。我在MacOS上操作,但是其中的链接提供了其他操作系统的安装及使用方法。
我用到了以下环境:
lc3tools
–现成的LC-3汇编编译器
有一个现成的编译器总会make out live easier,lc3tools。Unix上请按照README自行编译文件。
使用方法参考LC-3 Simulator Lab Manual.
lc3tools
接受一个.asm
的文件,输出一个.obj
的二进制可执行文件,这将是直接烧录到Program memory中的内容。在造出实物之前,可以将它烧录到lc3uarch
中进行仿真和学习:
lc3uarch
–Data path 模拟
lc3uarch,它接受一个.obj
的二进制可执行文件,输出一个单步执行和数据流动的过程:
很酷吧!
customasm
–自己的汇编编译器!
我们用customasm
工具来写自己的汇编编译器。但不是有现成的LC-3编译器了吗?是因为我们以后可能要自己设计指令集,所以需要用自己写的汇编编译器。但是我们不是from scratch,已经有人写好了:customasm,下面就来安装这个工具。
customasm
依赖rust
,先用Homebrew
安装rust
环境:
|
|
检测是否装好了:
|
|
其中rustc
是rust
的编译器,Cargo
是Rust
的包管理器和构建工具,我们用它再安装customasm
并配置环境变量:
|
|
检测:
|
|
看这里学习如何使用customasm
.