现在用 JUMP 让程序更有趣一些。
我们还把内存中 3 和 14 两个数字,改成 1 和 1,现在来从 CPU 的视角走一遍程序。
发现了吗?,每次循环都+1,不断增多。但没法结束啊,永远不会碰到 HALT。总是会碰到 JUMP,这叫无限循环 - 这个程序会永远跑下去.. 下去.. 下去.. 下去。
条件JUMP
为了停下来,我们需要有条件的 JUMP,只有特定条件满足了,才执行 JUMP。比如 JUMP NEGATIVE 就是条件跳转的一个例子,还有其他类型的条件跳转,比如 JUMP IF EQUAL(如果相等) JUMP IF GREATER(如果更大)。
现在把代码弄花哨一点,再过一遍代码
软件的强大之处
虽然程序只有 7 个指令,但 CPU 执行了 13 个指令,因为在内部循环了 2 次。这些代码其实是算余数的,11除5余1,如果加多几行指令,我们还可以跟踪循环了多少次,11除5,循环2次,余1。
当然,我们可以用任意2个数,7和81,18和54,什么都行,这就是软件的强大之处,软件还让我们做到硬件做不到的事。