从零开始构建现代计算机
Wilson-mz
这个作者很懒,什么都没留下…
展开
-
计算机系统要素--第六章,02-HACK汇编编译器实现
从零开始构建现代计算机--第六章,02-HACK汇编编译器实现要点A-指令C-指令符号表python实现要点关心三点:A指令,C指令,符号表A-指令A指令:将@num的num转为16位的二进制数即可C-指令C指令:分成四部分,固定的开头"111"(C指令标志),comp域(执行什么运算),dest域(计算结果的输出位置),jump域(是否跳转)符号表符号表保存的有编译器预定义的符号,以及汇编代码中自定义的标签和变量的地址预定义符号:符号表初始化就添加自定义标签和变量标签的en原创 2020-09-26 20:41:26 · 605 阅读 · 0 评论 -
计算机系统要素--第六章,01-HACK汇编编译器模块介绍
第六章,01-HACK汇编编译器模块介绍语法分析器(Parser)编码(Code)无符号程序的汇编编译器符号表(Symbol Table)有符号程序的汇编编译器HACK汇编编译器分成四个模块:语法分析器(Parser):对输入文件进行语法分析编码(Code):提供所有汇编命令对应的二进制代码符号表(Symbol Table):处理符号主程序:驱动整个编译过程语法分析器(Parser)Parser: 将汇编命令分解为其所表达的内存含义(域和符号)。封装对输入代码的访问操作。功能包括:读取汇编语原创 2020-09-21 22:20:19 · 716 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第五章,03-内存/CPU/HACK计算机电路图及HDL
从零开始构建现代计算机--第五章,03-内存/CPU/HACK计算机实现内存HDL电路图本节将构建内存,CPU,以及完整的HACK计算机。画图软件为ubuntu的dia整个计算机只有两种基本电路:组合逻辑电路和时序电路,基本构件分别是NAND和DFF,而DFF也是由NAND构建得来的,只是连接方式稍有不同(参见第三章,01-D触发器与1比特存储器实现)。从第一章到现在,从基本的与非门开始,所有的电路的连接,都是通过布尔代数指引的。足见布尔代数在计算机发展过程中的奠基性地位。这些电路功能上都很简单,原创 2020-08-16 18:36:30 · 1539 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第五章,02-HACK计算机硬件体系
第五章,02-HACK计算机硬件体系CPU控制逻辑的功能内存计算机Hack平台的大部分行为都发生在CPU中,因此主要任务就是构建CPU,其他的主要是正确连接。CPUCPU的实现目标是建立逻辑门结构,使其能执行指定的HACK指令和读取下一条要执行的指令。CPU包括:ALU,执行HACK指令一组寄存器控制逻辑,用于指令获取和解码下图给出除控制逻辑部分的连接方式:控制逻辑的功能指令解码(Instruction decoding),解析出指令所代表的意思(指令的功能)指令执行(Inst原创 2020-07-29 15:33:19 · 840 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第五章,01-HACK硬件平台规范
从零开始构建现代计算机--第五章,01-HACK硬件平台规范概述执行(Execute)取指令(Fetch)构建使用的元件中央处理器(Central Processing Unit,CPU)A-指令(The A-Instruction)C-指令(The C-Instruction)Computation规范(计算规范)Destination规范(目的地规范)Jump规范(跳转规范)使用A寄存器的冲突符号预定义符号(Predefined symbols)标签符号(Label symbols)变量符号(Varia原创 2020-07-29 15:05:38 · 548 阅读 · 0 评论 -
从硬件到软件-历史上第一个汇编器的实现原理
从硬件到软件-第一个汇编器的实现原理问题回答一、加载程序到硬件二、程序的编写与汇编器三、汇编器功能的扩展四、操作系统在前面学习汇编语言的时候,对硬件和软件之间缺失的一环吐了下槽,后来在课程的问答论坛上提问,得到了比较满意的回答,虽然还不是很详细,但大体可以体会到了,也有了进一步学习的方向:硬件到软件的跳跃。访问比较慢,可以备上梯子再访问。实现的核心是自举(bootstrapping),回答也提到这是项目中很小的一步,应该在课程开源的模拟器中实现了。现在把大神的回答转录整理如下。问题在没有高级语原创 2020-07-28 21:48:18 · 2789 阅读 · 6 评论 -
计算机系统要素-从零开始构建现代计算机--第四章,04-乘法,通过键盘控制屏幕
从零开始构建现代计算机--第四章,04-乘法,通过键盘控制屏幕乘法键盘屏幕操作这是课程作业mult.asm和fill.asmmult.asm的作用是计算R0×R1,保存到R2中。// (R0, R1, R2 refer to RAM[0], RAM[1], and RAM[2], respectively.)fill.asm作用是,当键盘上有键被按下时,将整个屏幕变为黑色,松开变为白色乘法计算R0×R1,保存到R2中参考mult.asm,做了小改动,加了点注释:// 3*2 换算成 2个3相原创 2020-07-26 19:29:15 · 539 阅读 · 3 评论 -
计算机系统要素-从零开始构建现代计算机--第四章,03-HACK机器语言示例
从零开始构建现代计算机--第四章,03-HACK机器语言示例操作寄存器和内存分支变量循环指针输入输出学完前一篇的机器语言规范,仍然是懵圈的,对于作业无从下手,还好视频中有一些示例,摘抄到这里,并附上了详细注释:操作寄存器和内存从前一篇可以知道,HACK机器语言中有三个寄存器:D:data register,数据寄存器A:address register/data register,地址与数据寄存器M:M=RAM[A]A指令作用:@17之后A=17,M=RAM[17]HACK的所有功能都原创 2020-07-26 17:48:55 · 578 阅读 · 1 评论 -
计算机系统要素-从零开始构建现代计算机--第四章,02-HACK机器语言规范
从零开始构建现代计算机--第四章,02-HACK机器语言规范概述(Overview)内存地址空间(Memory Address Space)寄存器(Registers)A-指令(The A-Instruction)C-指令(The C-Instruction)Computation规范(计算规范)Destination规范(目的地规范)Jump规范(跳转规范)使用A寄存器的冲突符号预定义符号(Predefined symbols)标签符号(Label symbols)变量符号(Variable symbol原创 2020-07-18 20:26:32 · 1170 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第四章,01-机器语言概述
从零开始构建现代计算机--第四章,01-机器语言概述机器(Machines)内存处理器寄存器语言(Languages)命令(Commands)算术操作和逻辑操作内存访问控制流程有条件跳转(unconditional jump)无条件跳转(unconditional jump)结语机器语言是符号与物理机器的界面,是硬件与软件的界面。机器语言向下直接操纵机器,向上提供软件符号接口。机器(Machines)机器语言直接打交道的对象是处理器(processor)、寄存器(register)和内存(memor原创 2020-07-17 23:44:32 · 738 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第三章,02-16Kb存储器与程序计数器实现
从零开始构建现代计算机--第三章,02-16Kb存储器与程序计数器实现简介实现的逻辑电路存储器16位寄存器(一个字节)8字节存储器64字节存储器512字节存储器4Kb存储器16Kb存储器程序计数器电路简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,代码实现与书籍介绍,可关注这位大佬,视频课程:coursera/B站偷一张大佬github截图作为介绍:实现的逻辑电路1.存储器16位寄存器(一个字节,byte)8byte存原创 2020-07-05 22:04:19 · 508 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第三章,01-D触发器与1比特存储器实现
从零开始构建现代计算机--第三章,01-D触发器与1比特存储器实现简介实现的逻辑电路D触发器介绍D触发器功能D触发器原理1.由Nand实现状态保持2.在状态保持基础上实现DFF1bit存储器简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,代码实现与书籍介绍,可关注这位大佬,视频课程:coursera/B站偷一张大佬github截图作为介绍:实现的逻辑电路1比特位存储器1bit存储器的记忆能力来源于D触发器(Data Fli原创 2020-07-05 19:18:50 · 1230 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第二章,02-实现算术逻辑单元(ALU)
从零开始构建现代计算机--第二章,02-实现算术逻辑单元(ALU)简介实现的逻辑电路ALUALU控制位说明ALU运算流程控制位的不同输入支持的函数使用已经实现的电路实现ALU电路连接漫谈简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,代码实现与书籍介绍,可关注这位大佬,视频课程:coursera/B站偷一张大佬github截图作为介绍:实现的逻辑电路ALU(Algorithmic Ligic Unit),算术逻辑单元,是CP原创 2020-07-01 23:57:43 · 1460 阅读 · 1 评论 -
计算机系统要素-从零开始构建现代计算机--第二章,01-实现半加器,全加器,加法器和增量器
从零开始构建现代计算机--第二章,01-实现半加器,全加器,加法器和增量器简介实现的逻辑电路符号约定用And/Or/Not实现半加器(HalfAdder)真值表转换为And/Or/Not表示电路连接用And/Or/Not实现全加器(FullAdder)真值表转换为And/Or/Not表示电路连接用半加器和全加器实现16位加法器电路连接用加法器实现增量器电路连接简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,代码实现与书籍介绍,可关注原创 2020-06-30 02:14:12 · 968 阅读 · 1 评论 -
计算机系统要素-从零开始构建现代计算机--第一章,02-实现异或门,Mux,DMux
从零开始构建现代计算机--第一章,02-实现异或门,Mux,DMux简介实现的逻辑门符号约定用And/Or/Not实现Xor真值表转换为And/Or/Not表示电路连接用And/Or/Not实现Multiplexor(Mux)真值表简化真值表转换为And/Or/Not表示电路连接用And/Or/Not实现Demultiplexor(DMux)真值表转换为And/Or/Not表示电路连接简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,原创 2020-06-27 20:27:44 · 1535 阅读 · 0 评论 -
计算机系统要素-从零开始构建现代计算机--第一章,01-用与非门实现与戓非
从零开始构建现代计算机--第一章,01-用与非门实现与戓非简介实现的逻辑门Nand原理Nand真值表符号约定用Nand实现And真值表转换为Nand表示电路连接用Nand实现Or真值表转换为Nand表示电路连接用Nand实现Not真值表转换为Nand表示电路连接简介这是《计算机系统要素:从零开始构建现代计算机》的学习笔记,刚刚启程学习,记录博客好提醒自己不要半途而废。书籍获取,代码实现与书籍介绍,可关注这位大佬,视频课程:coursera/B站偷一张大佬github截图作为介绍:实现的逻辑门使原创 2020-06-27 18:05:16 · 2714 阅读 · 0 评论