アセンブラー プログラミング keil uversion 4 でこのアップコードを翻訳したい:
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
アセンブラの構文は異なる場合があります。また、ハードウェア/OS が Thumb 命令セットを好む場合もあります。私はそれについて知りません。
あなたのスニペットは、入力値をどのように取得し、結果をどう処理するかという最も厄介な詳細を省略しています。アルゴリズムは、プラットフォームの詳細に関係なく、純粋なバニラ ARM です。I/O はありません。