問題タブ [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 に答える
658 参照

assembly - pdp 11 アセンブラ - サブコマンドの問題

そのため、pdp 11 シミュレーターを使用しており、この方法であるレジスターを別のレジスターから減算しようとしています。

サブ r2、r4

私が望むのは、r4 には r2 と r4 に保持されている値の差が含まれているということです。代わりに、無関係な巨大な数値が得られます。サブr2、r5を試してみましたが、同じ問題がありました。

どこが間違っていますか?コードは次のとおりです:(行はフラグ「kaka」の後にあります)

編集: これは完全なコードではなく、コードの残りの部分は関連しておらず、コードの残りの部分がコメントとしてマークされている場合でも問題が発生します。

0 投票する
6 に答える
958 参照

c++ - 無限ループの「for(;;)」イディオムは、PDP-11 Cコンパイラに正しく起因していますか?

最近、無限ループよりも優先するという考えが生まれたと主張するこの記事を見つけました。これは、元々PDP-11で使用可能なCコンパイラが、の追加のマシン命令を生成したためです。for(;;)while(1)while(1)

ところで、今ではVisualC++の警告でさえ前者を支持する傾向があります。

for(;;)そのようなイディオムの帰属はどれほど現実的ですか?

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

location - UNIXV6のいくつかのコードの説明を求める

現在、私は本を読んでいます:Lions_Commentary_on_UNIX_6th_Edition、一緒に私はunix v6のソースコードを理解しようとしています、そして私はいくつかのコードが興味をそそられるのを見つけました:例えば

これは私があまり得意ではないPDP-11アセンブリですが、これらのコードがここで何をしようとしたのか誰かに説明してもらえますか?また、PDP-11には、別の記号「..」があります。この記号が何をするのか、誰か説明できますか?

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

assembly - PDP-11 のアドレッシング モード

私はこの指示を持っています:

この命令がどのように実行されるべきか説明できますか?

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

assembly - アセンブリ、PDP11、ASCII コードを使用して特定のラベルにジャンプ

小さな質問が"A"あります。スタックから文字 (たとえば ) を受け取るサブルーチンがあり、同じ名前のラベルにジャンプしたいと考えています。

例えば:

r1"A"彼がスタックから得た値を保持します。次に、 label に分岐させ"A"ます。

ありがとう。

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

assembly - PDP 11 - 分岐コマンドの Op コードを知る方法

Branch コマンドの正しい opCode を取得する方法を理解するのに問題があります。コマンドを言ってみましょう:

beq opCode は、opCode001400
の最後の 2 文字に、ジャンプする必要があるオフセットが含まれていることを知っています。
この質問の回答では、それが書かれて001417いますが、なぜ、どのようにして17からを取得したの40かわかりません。
簡単な説明をいただければ幸いです。

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

assembly - なぞなぞ - コードの 4 ストロークを同等の 2 に置き換えます

私が理解しているように、r0 < 0 または r0 > 11 の場合、このコードの平和は分岐点です。

2 ストロークのコードだけに最適化するにはどうすればよいですか。

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

assembly - 初心者のベアメタル pdp11 コンソール出力

私は pdp-11 を使用するための初歩的な基本を理解しようとしています (大学で命令セットを学び、これを再検討したい)、最初のプログラムとして TTO/DL11 からいくつかのキャラクターを撃ちたいと思っています (それが最初に複雑すぎる場合を除きます)。プログラム)。

simhで実行しています。show dev が持っている

ドキュメントを読み取ると、tx バッファーはオフセット 566 にあります。stackoverflow で他のコードを確認し、他のページに 177566 (8 進数) と言う上位アドレス空間に mmu がある/ある可能性があります。レジスタは 22 ビットではなく 16 ビットであるため、そこに配置されますショーの開発者が暗示しています。

そして何も出ません。

set console telnet=4444 と telnet を使用できますが、変更はありません。間違いなく、16 ビットを超えるアドレス指定については理解できませんが、これを理解するためにどこに行けばよいかわかりません。

基本的には、コンソールからいくつかの文字を表示するのに大量のコード (数千行の asm) が必要でない限り、そこから何かを「見て」始めてから構築したいと考えています。したがって、私が近くにいるが完全ではない場合、またはこれが開始するのに最適な周辺機器ではない場合、どこに行くべきか、それらはすべてその上位アドレス空間にあります.

私はgnuツールを使用しています

そのため、構文は少し間抜け/非標準です。pdp11 は、少なくとも現在いくつかのリリースで binutils でサポートされており、それも利用したいと考えています。simh のバイナリ ファイル形式を理解するのはそれほど難しくありませんでした。シングル ステップは、私が必要としている命令と一致しており、gnu アセンブラーにフィードしています。

apt-got v3.8-1 バージョンの simh pdp11 と github の両方で試してみましたが、同じ結果が 4.0 バージョンでした。pdp11 シミュレーター/実行可能ファイルを使用します。

編集

作るもの

2 つの問題、1 つ私は忙しいのを待っていませんでした。大丈夫な初期化/リセットでは、ビジーではありません。キッカーは、キャラクターを吐き出す前に立ち止まったことだと思います。ループが発生すると、ほとんどの文字が吐き出されました。1文字を送信して停止しても出てこないのですが、ビジー状態になるまで待つと(notmain()の最後のもの)、その文字が出てきます。

これに変えたら

それは非常にうまく機能します...私をキックスタートさせてくれてありがとう。

マニュアルからのメモ:

その答えはすぐそこにあったので、私は正しい場所を見ませんでした。

EDIT2:

アセンブリでは、文字を tty から送信するという目標を達成するために、gnu アセンブラー構文 (@ の代わりに *、# の代わりに $) を使用します。

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

unix - unix v6 アセンブリの -(sp) の意味は何ですか?

とはどういう意味-(sp)ですか?

古いOSのPDP-11でUnix V6のコードを読んでいます。

の意味はすでに知っていspます。これはスタック ポインタです。これは と同じ-1(sp)ですか?