计算机系统要素
文章平均质量分 80
_Gatsby
这个作者很懒,什么都没留下…
展开
-
第一章:布尔逻辑
最近在学习计算机系统要素,特做此笔记,可在与书配套的官方网站获得所有的资源:点此打开。 1.项目描述:以原始的Nand门实现本章提到的所有的逻辑门,这里用HDL语言描述,*代表逻辑与,+代表逻辑或,x'代表对x取非。 2.实现: 基本思路:真值表--->逻辑表达式--->HDL语言 1)And门: 在这里以前学的数字逻辑知识终于用到了。 逻辑表达式为:a * b原创 2015-03-28 11:31:56 · 1427 阅读 · 0 评论 -
第六章:汇编编译器
目标:开发汇编编译器,将Hack汇编语言编写成的程序翻译成Hach硬件平台能够理解的二进制代码。 分析:本章的本质就是文本处理,将给定的.asm文本根据给定的规则映射为.hack二进制文件。 我们先分析.asm文件,一行可以是一下几种情况: 1)指令:又分为A-指令,C-指令。 2)常数和符号:常数还好解决,用户自定义的符号,还得为其分配内存。 3)注释:以"//"开头的被认为是原创 2015-04-05 22:28:26 · 1328 阅读 · 0 评论 -
第七章:虚拟机1:堆栈运算
目标:构建vm翻译器的第一部分,本质也是文本翻译,将vm程序翻译成.asm文件。 分析:首先熟悉vm程序的指令,本章涉及算数逻辑指令和push,pop指令,需要将其映射为汇编指令,汇编指令则直接操作D,A寄存器和内存。关键是明确这种映射关系。 Vmtranslator.py: import sys,os import Parser import CodeWriter fil原创 2015-04-07 17:54:30 · 695 阅读 · 0 评论 -
第八章:虚拟机2:程序控制
目标: 扩展vm翻译器,增加语言的程序控制流和函数调用命令。 思路: 本质是将.vm文本按照特定的规则转换为.asm文本,先将两种语言的命令归类: vm: 算数逻辑 push/pop 跳转(label, goto, if-goto) 函数(function, return, call)原创 2015-04-12 12:14:16 · 547 阅读 · 0 评论