問題タブ [pdp-11]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
641 参照

assembly - pdp-11「ODD WORD ADDRESS」にこのメッセージが表示されます。これはどういう意味ですか?

現在pdp-11のコードに取り組んでいますが、このエラー「奇数ワードアドレス」が発生するので、インターネットで検索してこれを見つけました:奇数アドレスエラー:ワードオートインクリメントまたはオートデクリメント命令で使用されるレジスタが奇数になる場合に発生します。そして、私はそれらが何を意味するのか理解できませんでした! 誰かが私を助けることができますか?

0 投票する
1 に答える
238 参照

unix - ccコンパイラによって生成されたUNIX v6アセンブリコードの意味は?

たとえば、以下は cc コンパイラによって生成された C コードとそのアセンブリ コードの一部です。

ほとんどのコードを理解できます。しかし、私は何をするのかわかりませ~~foo:ん。~c=177770そして、とのマジック ナンバーはどこから来るのでしょうか~d=177766。ハードウェアは pdp-11/40 です。

0 投票する
1 に答える
191 参照

assembly - PDP-11 でバイトとワードを XOR する方法は?

私たちが遭遇した主な問題は、一方の数値がバイトとして保存され、もう一方が単語として保存されXOR、PDP-11 に組み込まれていることに気付きました。

0 投票する
1 に答える
982 参照

assembly - PDP-11アセンブリ言語をバイナリと16進にエンコード/デコードしますか?

ADDユーザーが仮想的に PDP-11 命令 ( 、SUB、 、MOV[B]に限定されます) をエンコード/デコードできるアプリケーションの Encode および Decode ボタンの actionPreformed メソッドを作成する割り当てが与えられましたCMP[B]。アプリケーションは、4 桁の 16 進数または 16 桁のバイナリを取得してアセンブリにデコードするか、アセンブリ命令の 1 つを入力してバイナリ/16 進数にエンコードできると想定されています。

これは私にとってかなり新しいことであり、これを行う方法について頭を悩ませているようには見えません。誰かがこのプロセスをもう少し簡単に分解する方法を持っているか、どこから始めるべきかの指針を持っていますか? どこから始めればよいかよくわかりません。ありがとうございました!

0 投票する
2 に答える
173 参照

c - Cプログラムは内部でどのように引数を転送しますか?

これは、C とアセンブリを混合した PDP-11 コードです。以下では、u.u_rsav は配列ポインターです。

savu(u.u_rsav);

この関数のアセンブリ コードは次のとおりです。

プロシージャに入る前に、最初に引数をプッシュし、次に戻りポイントの PC 値をプッシュするようです。したがって、r1 には PC が格納され、r0 には引数が格納されます。私のパズルは、アセンブリ コードが呼び出しポイントに戻る前に、sp (スタック ポインター) が元の値に復元されないことです。引数がスタックに格納された位置をまだ指しています。

0 投票する
1 に答える
120 参照

assembly - PDP-11 アセンブラー: 「単一オペランド命令」はどのように機能しますか

PDP-11 アセンブリを理解しようとしています。そのために、私はこのドキュメントを読んでいます。

PDP-11 には、いくつかの命令タイプのセットがあります。1 つはシングル オペランド命令で、もう 1 つはダブル オペランド命令です。二重オペランド命令は、たとえば次のようになります。

...(私が正しく理解していれば)R0が指すメモリからデータを取得し、R0をインクリメントしてから、メモリから取得したデータをR1に格納します。

しかし、単一オペランド命令はどうでしょうか? 例えば:

何が起こるか?それは:

  1. R0 が指す値を取得する
  2. R0を増やす
  3. 値を増やす
  4. 結果を R0 が指す新しいアドレスに格納しますか?
  5. R0 を再度増加しますか?

または 2 はスキップされますか、それとも 5 はスキップされますか?