0

私はアセンブラが初めてで、助けが必要です。

私のコンパイラはこのコマンドのみに反応します

load i  
store i 
loadi i 
addi i  
subi i  
move S T    
loadin i j  
storein i j
all kind of jumps

そして、データストレージの1つにある数値ストアの階乗を見つけるプログラムを書く必要があります。最初のセルであると仮定します

前もって感謝します

4

1 に答える 1

0

最初に理解する必要があるのは、乗算の方法です。これを行うためのオペコードがないためです。次のようなことができます:

loop   add mul1 to result
       subtract 1 from mul2
       if counter is greater zero jump to loop

mul1 * mul2 を計算しようとしていて、ループが終了すると答えが得られます。

ここで、階乗を行う方法を理解する必要があります。先ほど書いた乗算を使用すると、次のようになります。

       load num
       set i = num
top    multipy num and  i
       subtract 1 from i
       if i is greater than 0 jump to top

これをアセンブラのオペコードに変換するために、私はそれを行うつもりはありません。アセンブリ コードにはさまざまな種類があるため、レジスタの数、オペコードの仕様などについてはよくわかりません。

私が ASM を使い始めるのに役立ったのは、タスクをより小さく、より管理しやすいタスクに分割したことです。幸運を!

于 2013-03-03T21:10:04.593 に答える