加分项目博客——计算机要素

加分项目博客——计算机要素

计算机要素第三章——时序逻辑

背景知识

前两章实现的是组合芯片,《计算机要素》第三章实现的芯片配备记忆单元来保存数据,这些记忆单元是由时序芯片组成。

本章课本内容介绍了时钟、周期、触发器、寄存器、内存、计数器和RAM等概念。

项目介绍

构建本章所有芯片

包括:
加分项目博客——计算机要素_第1张图片
加分项目博客——计算机要素_第2张图片

当程序被加载到硬件仿真器中后,芯片设计(.hdl程序)应由.tst文件 来进行测试,并在.cmp文件中产生输出。若结果不如所料,仿真器会给出相应的提示。

运行截图

  • pc
    加分项目博客——计算机要素_第3张图片

  • RAM8
    加分项目博客——计算机要素_第4张图片

计算机要素第四章——机器语言

背景知识

机器语言可以被看作是一种约定的形式,它利用处理器和寄存器来操控内存。

本章介绍了一种机器语言——Hack,这是一个基于冯•诺伊曼架构的16-位计算机,由一个CPU、两个独立的内存模块 (instruction memory即指令内存和data memory即数据内存),以及两个内存映射I/O设备 (显示器和键盘)组成。

《计算机要素》第四章讲解了Hack语言的语法规范, Hack可以被描述成一个“1/2地址机器”。因为在16-位指令格式中无法包含一个指令码和一个15- 位的地址,所以在Hack中,涉及内存访问的一些操作通常使用两个指令来描述:一个A- 指令来描述地址,一个C-指令来描述操作。

项目介绍

用Hack语言编写以下程序:

  • 乘法程序(Mult.asm):该程序的输入值存储在R0和R1中(也就是内存的两个 起始内存单元)。程序计算R0R1的值并将其存入R2。我们假设(此程序中)R0>=0 , R1>=0,R0R1<32768 ,虽然这些条件程序自身不用去检测,但是作为程序设计者的你 必须保证它们成立。提供的Mult, tst和Mult, cmp脚本会用一些典型的数据值来测试你 的程序。
  • I/O处理程序(Fill. asm):这个程序是一个无限循环,它侦测键盘的输入。当 按下任一键时,程序将屏幕变黑,即将“black”写入每个像素。当没有键按下时,屏幕应 该被清屏。你以任何空间顺序来选择屏幕的变黑和清屏,只要连续地按一个键足够长时间, 屏幕就会全黑,长时间不按键就会清屏。这个程序有测试脚本(Fill.tst)但是没有比 较文件(.cmp),只有通过对模拟屏幕的观察来检查执行结果。
  1. 使用普通的文本编辑器编写汇编程序
  2. 使用提供的汇编编译器来翻译你的程序。如果程序中有语法错误,回到步骤1。如果没有语法错误,编译器将后缀为 .hack的包含二进制机器指令的文件。
  3. 使用提供的CPU仿真器来测试生成的.hack代码。测试过程可以使用 .tst脚本以交互方式或者批处理方式来实现。如果产生了运行期错误,返回到步骤1检查。

运行截图

  • 乘法程序
    加分项目博客——计算机要素_第5张图片
  • I/O处理程序
    加分项目博客——计算机要素_第6张图片

你可能感兴趣的:(加分项目博客——计算机要素)