From Nand To Tetris 从与非门到俄罗斯方块

44、P1 W6 U6.6B 作业6 不编程实现

2019-09-29  本文已影响0人  shazizm

视频:
如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W6U6.6B -Project-6-Overview Without Programming

软件:
全课程所需软件项目包官方下载:
https://www.nand2tetris.org/software
备了一份软件项目包放在CSDN了,版本2.6支持Mac、Linux、Windows:
https://download.csdn.net/download/shazizm/11268147

如果没有接触过高级语言编程的同学。不是,可以跳过本节课。

人肉汇编器

这节课主要提供一些建议, 人工如何 翻译 汇编程序。

文本编辑器

这里需要你有个编辑器,比如文本编辑器,或者WordOffice,用来写我们的 xxx.hack 文件。也就是翻译后的文件。

具体步骤呢,其实就是上节课,或者本周课里讲的汇编器工作的逻辑

化繁为简

同样,老师给出了化繁为简的建议,比如分两步来完成。

先处理无符号的情况,再把符号替换。


无符号

无符号的汇编程序,回顾U6.3 的内容,拆分,查表,翻译。。。

有符号

首先回顾U6.4

把variables的符号转换,例如遇见第一个variable时, @i 的 i 用16替换。一次类推 sum 就是17。

@i 的替换 示例

再考虑labels,先给指令编号行号,不包括空行和注释行。还有label的声明行(就是括号那样的),然后Label替换成它下行指令的行号。例如下图。

51.png

如何检查翻译结果

有如下图三个工具,都在老师的软件包里(本节最开始处有下载链接)

U6.6A 有视频演示 Assembler 如何使用

下面给出 Assembler 的示意图

接下来就是part1 最后一节课 总结了。

上一篇下一篇

猜你喜欢

热点阅读