-1

该程序使用一个循环,通过重复加法将两个正数相乘。我需要帮助来优化程序,使其循环次数尽可能少。例如,程序只会循环 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
4

1 回答 1

1

给定 3 * 6 示例,此乘法将循环 6 次或 3 次,具体取决于参数的顺序。因此,如果确保以较小的参数作为循环计数器、较大的参数作为加数进入循环,它将循环更少的次数。

例如,在循环之前检查一个是否更大并在必要时进行交换。

于 2019-11-02T19:36:18.890 回答