30、P1 W4 U4.9 作业4 讲解

作者: shazizm | 来源:发表于2019-08-10 19:17 被阅读0次

    视频:
    如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
    P1W4U4.9 - Project 4 Overview

    经过了第4周的机器语言的折磨。
    下周,第5周就是激动人心的 HACK电脑大组装了,将会把之前1、2、3周学习逻辑单元都用上,组装出Hack小电脑。

    之所以在第5周之前要安排一周Hack机器语言的学习,是为了更好的从一个整理来理解Hack硬件,Hack汇编语言,Hack机器语言,会发现 指令 和 硬件 是 息息相关。

    这周第4周主要讲了底层的机器语言,但同时也是为了让我们对硬件有更好的理解。

    本周作业,只有两个:

    写一个代数计算的程序。mult.asm
    写一个 键盘 和 屏幕 交互的程序。fill.asm

    作业:一个乘法,一个交互

    乘法

    如下图:写一个程序 使 R0 * R1 的结果写入 R2

    提示:循环 和 加法

    关于乘法,老师说在 nand2tetris 的Part2 软件部分,会实现一个Hack小操作系统,其中就有一些重要的数学库,而这些数学库大部分都会用到乘法。

    R2 = R0 * R1

    交互

    如下图:写一个程序 当键盘上,任意键按下时,就黑屏。抬起键,就白屏。

    提示:写一个循环,一直监听键盘,然后对应做出反应。黑屏,就是把所有屏幕映射区的寄存器,全部写-1。

    按下键盘任意键,黑屏

    写码标准姿势

    老师给了一个写代码的基本工作流。如下图

    如果语法有错误,CPUEmulator会提示你哪行出错了。方便找到对应指令。

    工作流

    如果说上图的工作流有点废话的话。

    下图的最佳实践还是很值得注意的。

    能用 “别名” 和 变量 表示存储器的“门牌号”。就千万不要用具体的地址数字。
    别名 和 变量,起名字的时候要能让人看懂啥意思。
    变量用小写。
    别名用大写。
    用缩进?使排版美观。
    写汇编前,可以打打草稿(伪代码)。

    变量小写,别名大写

    那么下周第5周,终于可以来完成Hack小电脑啦。

    相关文章

      网友评论

        本文标题:30、P1 W4 U4.9 作业4 讲解

        本文链接:https://www.haomeiwen.com/subject/oizrjctx.html