《Code》简述与体会——第17章节

下面这一章节叫做“自动操作”,作者将前面的16章节(214页)总结在一起,最终组装成了一台计算机。

在第十四章节,介绍的加法器又出现了,并且有了自己的一个新名词,叫做累加器——用于累加多个数的锁存器(我的理解是:累加器=加法器+锁存器)。为了能让电路自己进行加法运算,作者就将64K×8的RAM阵列与累加器连接起来,组成了最初的自动加法器;在这之后,又用方格形式介绍了存储器是存储数据的形式;随后引入计算机代码(例如,Load操作码表示加载指令等),让它们与RAM组合起来,组成了一个新的RAM阵列(标记为“代码”,跟第一个数据RAM阵列不同);因为有时需要直接从RAM阵列中读取数据,所以又在电路中加了一个2-1选择器(先进行低字节的运算,再进行高字节的运算);在新的要求下,为了能让自动加法器进行减法运算,引入了一个新的计算机代码:Subtract(减法),理所当然的要在RAM和8位加法器中间加上一个反向器;加法有进位,减法有借位,所以又多了两个代码——进位加法,借位减法;为什么不能把代码和数据放在一起呢?所以,这时每一个指令(除了Halt操作码外)分为了三个字节(第一个字节为代码本身,另外的两个字节用来指明数据RAM阵列的一个存储单元),与此同时,代码RAM阵列就“退下了”,取而代之的是一个8位锁存器;为了能实现利用先前计算过的值,此时引入一个Jump的操作码(通过将16位计数器清零来实现);接下来,就是对乘法的运算,见下图:
《Code》简述与体会——第17章节
此时存储器的内容、电路图见下图:
《Code》简述与体会——第17章节
《Code》简述与体会——第17章节
《Code》简述与体会——第17章节
操作码见下图:
《Code》简述与体会——第17章节
最后,讲的就是用简短的助记符(都用大写字母表示,包括2个或3个字符)代替机器码。
《Code》简述与体会——第17章节
借最后的这一点,启发了我编写除法的欲望,下面就是我根据本章的内容所编写的除法:
《Code》简述与体会——第17章节
《Code》简述与体会——第17章节
其实,我还有第三种方法:
0+28=28、28+28=56、···、140+28=168、
我自己也考虑过这一种,就目前我所学的而来说,我没法让计算机识别156=156 的时候停下,所以就放弃了这一种算法。
《Code》简述与体会——第17章节