0

我想在汇编程序编程 keil uversion 4 中翻译这个 upcode:

n = 5,
fac = 1,
next = 2

while  next <= n do

   fact = fact * next
   next = next + 1``

end

谢谢

4

1 回答 1

0

据我所知,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 不会。

于 2013-11-08T18:05:46.143 回答