《计算机系统要素》
yz764127031
一枚渣渣
展开
-
《计算机系统要素》学习笔记:第六章汇编编译器
学习要点: 1.软件的模块化:下层为上层提供服务,code->parser->assembler 2.学习思路:先写出没有符号表的编译器,再写有符号表的编译器 3.汇编编译器只是做文本的转换,选用Python简单便利 3.python相关知识: 1)字典以及相关操作 2)Python字符串操作str.startswith()//以某字符串开头str.strip() // 清除字符s原创 2017-02-06 21:42:10 · 883 阅读 · 0 评论 -
《计算机系统要素》学习笔记:第三章时序逻辑
1.学习要点 1)本章内容基础知识属于数字电路的时序逻辑电路部分,和部分计算机组成原理的内容。 2)触发器相关的基础知识,如内部结构,时钟等,在书中被忽略,需要单独学习。 3)本章内容以D触发器为基本元件,其他元件的构造都基于它。 4)设计计算机时钟时,时钟周期的长度要比1个比特在计算机两个物理距离最长的芯片之间的传输时间稍长。 5)RAM芯片,注意结合计算机组成的知识,理解对应的地址线,原创 2017-01-21 14:11:02 · 1415 阅读 · 0 评论 -
《计算机系统要素》学习笔记:第一章布尔逻辑
1.工具准备 本书需要的工具和资源下载址:http://www.nand2tetris.org/software.php 工具分为tools和project两个文件夹,打开tools文件夹,打开hardwaresimulator.bat,在project文件夹中,编辑hdl文件,写入代码,保存后在硬件仿真器中load chip,并load script(导入测试脚本),运行查看结果是否正确。2.原创 2017-01-19 20:39:47 · 3925 阅读 · 3 评论 -
《计算机系统要素》学习笔记:第二章布尔运算
1.学习要点 1)本章内容涉及数字电路中加法器的构建,以及二进制数据在计算机中的计算方式,重点和难点为ALU的理解和实现。 2)重点理解补码运算。 补码:x的补码=2的n次方-x,即反码+1 减法可以看成x-y=x+(-y) 3)重点理解P37的ALU**真值表**,最好代入相应值计算理解,同时整个过程与补码运算密切相关,真值表同时暗示电路结构,各个控制位之间的前后顺序,ZX在NX之前,Z原创 2017-01-21 13:44:31 · 2090 阅读 · 1 评论 -
《计算机系统要素》学习笔记:第四章机器语言
1.学习要点 1)机器语言可以被看作是一种约定的形式,它利用处理器和寄存器来操控内存。 2)汇编语言可分为三类:内存访问(直接寻址,立即寻址,间接寻址),算术逻辑运算,分支跳转语句(流程控制) 3)hack语言,共有A-指令和C-指令两种指令,A指令负责寻址,C指令负责运算和跳转,与第五章的CPU结构对应。 4)乘法程序用多次加法来实现。 5)I/O处理程序没看懂,网络找到答案,但是模拟器原创 2017-01-26 22:09:07 · 2043 阅读 · 0 评论 -
《计算机系统要素》学习笔记:第五章计算机体系结构
1.学习要点 (1)系统 系统=计算设备+程序 前三章只是静态的构建计算设备,第四章描述了程序的最底层表达,即机器语言。最后第五章是对前四章的总结,构建了一个完整的动态的计算机系统工作的模型。 (2)计算机工作的要点就在于:程序存储和程序控制。而程序存储即表明计算机中将程序和数据都存放在存储器中,程序控制即是通过译码将机器指令转换为具体的控制信号进行控制。 (2)Hack硬件平台: 16原创 2017-02-01 17:31:17 · 1844 阅读 · 1 评论 -
《计算机系统要素》学习笔记:前五章内容小结
1.抽象思想 要点: 1)分层构建,低层为高层提供服务,通过分解问题,降低问题的复杂度(整体—部分)。 2)模块化思想,结构与功能分离,内部结构对外信息隐藏,对外提供接口。 3)接口,描述“事物要做什么”,是一种功能性定义提供信息以便使用该事物提供的功能。 前五章构建硬件系统的过程就是抽象思想的实践,前三章内容都是自己动手构建某种硬件模块,构建好的模块将是更高一级的模块的组成部分,同时为高原创 2017-02-04 11:14:19 · 877 阅读 · 0 评论