有5个数要进行相加:10+5+7+2+6
为此,需要编制5条指令。
为了执行每条指令,都得按动9次K开关,所以你唯一的工作就是坐下来,不停地按动开关。
很容易计算,你总共需要不停地反复按5x9=45次。

如果让人工来一直按K开关是不现实的,而且更容易出错。

而我们之前学习的振荡器就可以模拟发出脉冲信号继而实现不断地模拟连续拨动开关。
但是,振荡器必须恰到好处地停下来,但遗憾的是,振荡器不像你一样有脑子,它可不知道什么时候就应该停止振荡了。

如果直接接入振荡器去模拟按K开关,这台机器将持续计算,直到计数器AC到最大,然后又接着从0000重新开始计数。
为了使振荡器可以处于一种可控的状态,需要做几个方面的改进。

首先,必须为这台机器增加一个新的指令,即停止指令。

比如11111,并把它放到其他所有指令的后面。
这个指令,跟我们之前学习的10001(MOV RA,操作数) 10010(ADD RA,操作数)不一样。

停止指令,它只有操作码而没有操作数,实际上也不需要。

其次,重新设计译码器电路EC,使它除了可以译出I装载和I相加之外,还能译出“停机”,既I停机。
最后,也是最重新的部分,重新设计这台机器的控制器,如下图:

重新设计的指令译码电路EC,使它可以译出I停机,平时,IHLT=1,振荡器的脉冲可以顺利的通过与门。
一旦执行到了停机指令,则I停机=1,这直接导致IHLT=0,于是不再有振荡器脉冲到达控制器,控制器就停止工作,整个机器就停止工作了。

如果计算机执行了并非指令的“指令”,指令译码器将不能输出正确的信号给控制器,整个计算机也就瘫痪了(蓝屏死机的可能原因之一)。

所有指令在存储器的布置都是精心设计的,绝对不能乱。
当一条指令执行完后,紧接着,控制器取出的应当是另一条指令。

不过,由于各种不同的原因,存储器中本应该是一条指令的地方恰恰是一个普通的二进制数,而非一条指令。
计算机执行的非计算机指令称为非法指令