Эта программа использует цикл, который умножает два положительных числа с помощью повторного сложения. Мне нужна помощь в оптимизации программы таким образом, чтобы она зацикливалась как можно меньше раз. Например, программа только зациклилась бы 3 раза, чтобы вычислить 3 * 6. То есть 6 + 6 + 6.
ORG 100
Load Y /load second value to be used as counter
Store Ctr /Store as a counter
Loop, Load Sum /load to the sum
Add X /Add X to sum
Store Sum /Store result in Sum
Load Ctr
Subt One / Decrement counter
Store Ctr /Store counter
SkipCond 400 /if AC=0 , discontinue looping
Jump Loop /if acnot 0 , continue looping
Endloop, Load Sum
Output /Print product
Halt /sum contains the product of x and y
Ctr, Dec 0
X, Dec 0 /initial value of x
Y, Dec 0 /initial value of Y
Sum, Dec 0 /initial value of Sum
One, Dec 1 /the constant value of 1
END