累乗を行うアセンブリ コード: • アセンブリ プログラムを実装して、指定された数 n の指数べき乗 P(n,e) を計算します。o 例えば。n = 2 かつ e = 5 の場合、P(n,e) は = 2 2 2 2 2 = 32 になります。 • ユーザーは、数値 n の値を R0 に入力する必要があります。つまり、RAM[0] および e を R1、つまり RAM[1] に挿入します。• 結果 P(n,e) は RAM[2] に保存する必要があります。• 特別な場合: e が 0 の場合、プログラムは RAM[0] に 1 を格納し、プログラムを終了する必要があります。
asmについていくつかの研究を行っています。power.asm に関するこの特定の質問に対して、以下に示すようにサンプルの回答が与えられましたが、M=0 の前に @2 があり、その後に @1 があるのはなぜですか? power.asmでこのコードを説明してくれる人はいますか? ありがとうございました。
@2
M=0
@1
D=M
@EXIT
D;JEQ
@POWER
D;JGT
(EXIT)
@1
D=A
@2
M=D
@0
M=D
@END
0;JMP
(POWER)
@0
D=M
@2
M=D // set up first iteration, power of 1
@END // if the first iteration is 1, no need to add anymore, since multiples of 1 is 1
D-1;JEQ
(LOOP)
@0
D=M
@3
M=D-1
@2
D=M
@4
M=D
@1
M=M-1
D=M
@MULT
D;JLT
@END
D;JEQ
(MULT)
@4
D=M
@2
M=D+M
@3
M=M-1
D=M
@MULT
D;JGT
@LOOP
D;JEQ
(END)
0;JMP