假设您有一条指令(称为 JPE),如果累加器是偶数则向前跳转(只是测试最右边的位是否为空),您可以拥有这个沉重/丑陋的解决方案。
指示 :
JPE <address>
:如果累加器为偶数,则跳转到该地址。
ADD <r1>, <r2>
: 将<r1>
to的值<r2>
相加并将结果存储到<r2>
.
SHR
: 将累加器右移 1 位。
初始化:
Acc : first number.
Sr1 : 0, but it will hold the result at the end of the algorithm's execution.
Sr2 : second number to multiply with the first.
糟糕的算法:
0001 JPE 0003
0002 ADD Sr2, Sr1
0003 SHR
0004 JPE 0007
0005 ADD Sr2, Sr1
0006 ADD Sr2, Sr1
0007 SHR
0008 JPE 0013
0009 ADD Sr2, Sr1
0010 ADD Sr2, Sr1
0011 ADD Sr2, Sr1
0012 ADD Sr2, Sr1
0013 SHR
0014 JPE 0023
0015 ADD Sr2, Sr1
0016 ADD Sr2, Sr1
0017 ADD Sr2, Sr1
0018 ADD Sr2, Sr1
0019 ADD Sr2, Sr1
0020 ADD Sr2, Sr1
0021 ADD Sr2, Sr1
0022 ADD Sr2, Sr1
0023 SHR
0024 <STOP>