2016-07-03 4 views
0
mov 8[+r1], 1337 

編集は、dwelchの推奨スレッドを読んだ後、私は(私は右のそれを理解すると仮定した場合)を取得:与えられた(非常に短い)アセンブラ命令を正しく変更しましたか?

add #8, r1 
mov #1337, r2 
mov [r1], [r2] 
sub #7, r1 

は、この正しいですか私はミスをしましたか?

我々はアセンブラについて持っていた情報:事前増分でインデックス

  • n[+rx]レジスタ。 nは、インデックス値とrxが直接我々は唯一のadd, sub, movを使用することができ

に対処

  • #n即時に間接アドレッシング

  • [rx]レジスタのアドレス指定x

  • rxレジスタをレジスタです。 r1を除き、必要に応じてさらにr2を変更することができます。

    私は正しく行ったと思いますか?

  • +0

    「サブ#1336、r2」はなぜ必要ですか? –

    +0

    +1のインクリメントに必要です。 1337から引いて+1の増分を得る([+ r1]のために増分が必要)。 – rpbudd

    +0

    'r1'はプリインクリメントを使用しているので、' r2'のためにそれを使うのはどうですか? –

    答えて

    1
    add #8, r1 
    mov #1337, r2 
    mov [r1], [r2] 
    

    これは、r1レジスタのプリインクリメントを組み込んでいないようです。
    の代わりにを追加してください。

    add #9, r1 
    mov #1337, r2 
    mov [r1], [r2] 
    
    +0

    私は問題が仕事の限界であると思う: "r1を除いて、必要ならr2をさらに修正するかもしれない。" #8から#9に変更することは許されませんか、間違っていますか? あなたの助けにTyvm btw! – rpbudd

    +0

    "*私は*に変更されました"と述べたので、皆さんは*あなたが* 4行のコードを書いたと思っています。そうすれば、あなたは仕事を解決するために好きな番号を自由に書くことができます。 –

    関連する問題