0

私は新しいアセンブリ プログラマーです。

そして、私が頭を悩ませているように見える1つの概念は、あなたがどのようにできるかということです

LD R0, R1

どこ

AND R0, R0, #0

AND R1, R1, #1

オペコードを使用してメモリアドレスをレジスタにロードする必要があることは知っていますがLD、10 進数の 1 を含むレジスタを 10 進数の 0 を含むレジスタにロードするにはどうすればよいでしょうか?

私はフィボナッチループを作ろうとしています:

loop    ADD R2, R0, R1    ; F_i = F_0 + F_1
        LDI R0, R1        ; F_0 = F_1
        LDI R1, R2        ; F_1 = F_2
        AND R3, R3, #-1   ; decrements counter by 1
        BRp loop

負荷を設定する必要がある場所R0R1、新しく計算されたフィボナッチ和R2

4

1 に答える 1

0

更新なしで LC3 のみを使用していると思います (つまり、LC3b ではありません)。このことを念頭に置くと、LD/LDI の使用 (または理解) は正しくありません。コードを LC3Edit でコンパイルしてみましたか? エラーを吐き出します。この質問の回答を確認してください。ネットで見つけた LC3 命令セット PDF からhttp://pages.cs.wisc.edu/~markhill/cs252/Spring2007/handouts/lc3-1page.pdf :オペランドの 1 つはレジスタではなく、代わりにラベルなので、ループごとにロード、計算、保存する必要があります。

LD DR, label ; Load PC-Relative
LDI DR, label ; Load Indirect



LD R0, R1

于 2014-10-16T03:02:46.433 に答える