《Code》读书笔记17: 自动操作

这一章压着性子看,还是比较容易懂的,关于读书笔记,写的也很仓促。
这一章讲着讲着,一台电脑的基本雏形就出来了... ...


累加器不仅仅做简单的累加,它还充当着锁存器的角色,保存第一个数,并且和下一个数做加法或减法运算。

进行加法操作,首先它要把一个字节从存储器中传输到累加器中,这个操作称为加载(Load)。第二个操作把存储器中的一个字节加(Add)到累加器的内容中去。
第三个操作把累加器中的计算结果取出并存放(Store)到存储器中。另外我们需要用一个方法令自动加法器停(Halt)下来。

我们需要四个代码来标记新的自动加法器需要做的四个操作(Load, Add, Store, Halt)
每一个代码都对应着数据RAM中要求被加载或者加到累加器中的数,或者对应需要存回到数据RAM中的某个数。
以这种方式使用的数字代码常常被称为指令码(instruction code)或操作码(operation code)。它们指示电路要执行的某种操作。

从电路中减去一个数,首先是向操作码中增加一种代码Subtract。

在8位存储器中存储16位的数:将8位低字节保存在低位,将8位高字节保存到高位。
如何保存低字节相加的进位呢?1位锁存器就是最好的选择了,该锁存器应该被称为进位锁存器(Carry latch)。
为了使用进位锁存器,还需要另一个操作码,我们称之为“进位加法”(Add with Carry)。
如果要进行16位减法运算,则还需要一个新的指令,称为“借位减法”(Subtract adn Borrow)。

进一步优化:
每一条指令在存储器中占用3个字节的空间,第一个字节为代码,另外两个字节为1个16位存储器单元地址。

从存储器中取出指令的过程称为取指令(instruction fetch)。
机器相应指令码做一系列操作的过程称之为执行(execute)指令。

通常情况下自动加法器是以顺序方式对RAM阵列寻址的。Jump指令改变了机器的这种寻址方式,取而代之的是从某个指定的地址开始寻址。这种指令有时也被称作分支指令(branch)或者Goto指令,即“转到另一个位置”。

... ...


猜你喜欢

转载自blog.csdn.net/Since20140504/article/details/80000252
今日推荐