我想在汇编程序编程 keil uversion 4 中翻译这个 upcode:
n = 5,
fac = 1,
next = 2
while next <= n do
fact = fact * next
next = next + 1``
end
谢谢
据我所知,Keil 使用的是 ARM CPU。基本顺序是:
mov r0, #5 ;n
mov r1, #1 ;fact
mov r2, #2 ;next
b LoopCheck
Loop:
mul r1, r1, r2
add r2, r2, #1
LoopCheck:
cmp r2, r0
ble Loop
您的汇编程序的语法可能会有所不同。此外,硬件/操作系统可能更喜欢 Thumb 指令集;我不会知道的。
您的代码段省略了所有细节中最棘手的细节 - 您如何获取输入值以及您如何处理结果。该算法是纯香草 ARM,独立于平台的细节;I/O 不会。