0

アセンブラー プログラミング keil uversion 4 でこのアップコードを翻訳したい:

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   

アセンブラの構文は異なる場合があります。また、ハードウェア/OS が Thumb 命令セットを好む場合もあります。私はそれについて知りません。

あなたのスニペットは、入力値をどのように取得し、結果をどう処理するかという最も厄介な詳細を省略しています。アルゴリズムは、プラットフォームの詳細に関係なく、純粋なバニラ ARM です。I/O はありません。

于 2013-11-08T18:05:46.143 に答える