我正在阅读《计算系统的元素:从第一原理构建现代计算机》一书,其中包含的项目涉及从布尔门到高级应用程序(按此顺序)的计算机构建。我正在处理的当前项目是使用我选择的高级语言编写汇编程序,以将Hack汇编代码转换为Hack机器代码(Hack是前几章中构建的硬件平台的名称)。尽管所有硬件都是在模拟器中构建的,但我试图假装我实际上在实际过程中仅使用当时可用的工具来构建每个级别。
就是说,这让我开始思考。使用高级语言编写我的汇编程序当然很方便,但是对于有史以来第一个(即历史上)编写的汇编程序,它不需要用机器代码编写,因为那时已经存在了?
还有一个相关的问题...今天怎么样?如果出现了全新的CPU体系结构,全新的指令集和全新的汇编语法,则如何构造汇编器?我假设您仍然可以使用现有的高级语言来为汇编程序生成二进制文件,因为如果您知道新平台的汇编语言和机器语言的语法,那么编写汇编程序的任务实际上就是文本分析任务,并且与该平台没有内在联系(即需要以该平台的机器语言编写)...这就是我能够在2012年编写我的Hack汇编程序时“作弊”并使用一些预先存在的原因的原因高级语言可以帮助我。