PDP-11アセンブラーのアドレス指定モード
-
24-10-2019 - |
質問
私は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が含まれているかどうかを確認します。
所属していません StackOverflow