$$
\begin{array} { l } { 1 0 0 0 0 \mathrm { h } \Bigg \{ \begin{array} { l l } { { 0 0 \mathrm { { 0 \bar { h } } } } } \\ { { 0 0 \mathrm { { \bar { h } } } } } \end{array} \biggr \} \begin{array} { l } { { 1 6 \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } } } \\ { { \mathrm { \bar { A } } \mathrm { { 7 } } \mathrm { { \bar { h } } } } } \end{array} } \\ { 1 0 0 2 \mathrm { { \bar { h } } } _ { : } [ \begin{array} { l } { { 0 0 \mathrm { { \bar { h } } } } } \\ { { 0 0 \mathrm { { \bar { h } } } } } \end{array} ] \begin{array} { l } { { 1 6 \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { \bar { k } } } } \\ { { 1 \mathrm { C h } } } \end{array} } \\ 1 0 0 4 \mathrm { { \bar { h } } } _ { : } [ \begin{array} { l } { { 0 0 \mathrm { { h } } } } \\ { { 0 0 \mathrm { { h } } } } \end{array} ] ^ { \ast } = - \begin{array} { l } { { 1 6 \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { \bar { k } } \mathrm { \bar { k } } \mathrm { \bar { k } } } } \\ { 1 6 \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { { \bar { k } } } \mathrm { \bar { k } } \mathrm { \bar { k } } } \end{array} ] \mathrm { \bar { k } } \mathrm { \bar { k } } \end{array}
$$
大家都知道A7h和1Ch相乘的结果(即十进制的28)和把28个A7h累加的结果相同。因此保存在地址1004h和1005h的字节实际上是累加的结果。下图演示了如何把A7h加到该地址。
当这6条指令执行完毕之后,存储器1004h和1005h地址保存的16位数与A7h乘以1 的结果相同。因此,为了使存放于该地址的值等于A7h与1Ch相乘的结果,要把这6条指令再反复执行27次。为了达到这个目的,可以在0012h地址开始把这6条指令连续输入27次;也可以在0012h处保存一个Halt指令,然后将复位键连续按28次得到最终结果。
当然,这两种方式都不是很理想。它们都要求你做重复做许多遍烦琐的事情:输入一系列指令或者反复按复位键,而重复的次数就等于乘数。你当然是不会愿意用这种方式来进行16位数乘法运算的。
17 自动操作
241