質問

私はPDP-11(シミュレータ)について小さな質問があります、私はこのコマンドを持っています(それはアドレス1000から始まります)2500、#2500を追加します

そしてこの最初のリスト:

register/address - initial value
pc                 1000
sp                 600
2500               3000

そして、私はこの小さなスニペットが正確に実行される方法を知りたいのですが、私の小冊子では次のことがわかりました。まず、アドレス1000からインフォラムを読み取ります。 (追加のため 2500, 、#2500)、しかし、私の小冊子には説明なしに1474があります。なぜ私はここに相対的なアドレス指定モードを持っていることを知っていますが、なぜ2500ではなくアドレス1002内に1474

役に立ちましたか?

解決

ADD 2500,#2500

ASをコンパイルします

    0:      066727 ; ADD
    2:      002474 ; 2500 - 6 (next instruction offset)
    4:      002500 ; #2500 (literal value)
    6:      ...    ; next instruction
  ...
 2500:      003000

他のヒント

あなたが持っている場合:

    add     2500,#2500      ;add content of location 2500 to immediate value.

組み立てられた最初の単語は命令であり、2つ目は最初のオペランドのアドレスデータです( 2500)、そして3番目は当面の価値になります 2500。最初のオペランドのPC相対アドレス指定モードは、オペランドのアドレスを取得するために与えられた値にPCの値を追加します。これは間の違いになります 2500 そしてその時点でのPC(1474, 、オフセットを読み取るための増分後)。

1004 + 1474 = 2500, the address of the data.

通常、次のことを行います。

    add     #2500,2500       ;add 2500 to the word at location 2500.

最初の例として、結果が命令ストリームに保存されました。

すべてのアドレス指定モードを覚えていませんが、アドレス1474を見て、2500が含まれているかどうかを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top