Add,Subtract,Add with Carry,Subtract with Borrow指令来说,该地址指明的存储单元所保存的是要从累加器中加上或减去的字节。对于Store指令来说,该地址指明的是累加器中的内容将要保存到的存储单元地址。
例如,当前加法器所能进行的最简单的运算就是对两个数求和。为了执行这个操作,需要按下面的方式设置代码RAM阵列和数据RAM阵列。
$$
\begin{array}{c} \begin{array} { r l } { { 4 } \overrightarrow { 1 } \overrightarrow { 1 3 } } & { { } } \\ { 0 . 0 0 0 \mathbf { h } \colon [ \begin{array} { l } { 1 0 \mathbf { h } } \\ { 1 0 \mathbf { h } } \end{array} ] \mathbf { L o a d } } & { { } } \\ { [ \begin{array} { l } { 2 0 \mathbf { h } } \\ { 2 0 \mathbf { h } } \end{array} ] \mathbf { A d d } } & { { } } \\ { [ \begin{array} { l } { 1 1 \mathbf { h } } \\ { \mathrm { F F h } } \end{array} ] \mathbf { S t o r e } } \end{array} & { { } } \end{array} \begin{array} { r l } { \underbrace { \frac { 4 \mathbf { k } + \mathbf { B } } { 2 \mathbf { k } } } _ { \begin{array} { l } { 0 . 0 0 0 \mathbf { h } \colon [ 4 \mathbf { A } \mathbf { h } ] } \\ { 0 . 5 \mathbf { h } } \end{array} } } \\ { [ \begin{array} { l } { 1 0 \mathbf { h } } \\ { \mathrm { F r h } } \end{array} ] \mathbf { H } \mathbf { a d t } } & { { } } \end{array}
$$
在改进的自动加法器中,每条指令(除了Halt指令)需要3个字节。
每一条指令的代码(除了Halt指令)后跟两个字节,用来指明数据RAM阵列中16位的存储地址。这三个地址恰巧是0000h,0001h和0002h,但它们可以是任何其他可用的地址。
前面讲到了如何用 Add 或 Add with Carry 指令来对两个 16 位数—比如 76ABh 和232Ch求和。必须把两个数的低字节保存到存储器的0000h和0001h地址,把其高字节保存到0003h和0004h地址,运算的结果分别保存在0002h和0005h。
通过这种变化,我们可以用一种更合理的方式来保存这两个操作数及其运算结果,
编码—隐匿在计算机软硬件背后的语言
232