問題タブ [dcpu-16]

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 に答える
344 参照

dcpu-16 - DCPU16 のキーボードから文字を取得する最良の方法

したがって、私の目標は、ユーザーが で終了する文字列を入力するまで呼び出されたときにハングするサブルーチンを作成し、<return>それを返します(おそらくユーザーが指定したアドレスに書き込むことによって)。

私の問題は、キーボードから個々の文字を取得する最善の方法にあります。私が見たように、3つの方法があります:

  1. キーボードからの割り込みをリッスンし、それらに応答して文字を取得します。これは、 によって実行されるロジックがgetline割り込みハンドラ内にあることを意味し、いくつかの問題を引き起こしているようです。つまり、キーgetlineを押したときの応答としてどのように戻りますか? <return>割り込みハンドラーでは、戻りアドレスが手元にありません。また、割り込みハンドラーに特定のロジックを入れすぎるパターンは、私には...間違っているように思えます...私は低レベルのコーディングに非常に慣れていませんが。

  2. キーを押すためにキーボードを引っ張り続けるだけです。

  3. 押されたすべての文字を循環バッファ (おそらく長さ 1) にロードすることにより、割り込みハンドラで古い 1.1 の動作を実装します。

これらのオプションについて、もう少し見通しがあればいいでしょう。

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

binary - DCPU-16 ビット単位のシフト

私はDCPUを学ぼうとしています。

私がやっているのは左にシフトすることだけなので、シフトごとに単純に2倍になるべきではありません。私のコードでは、最後のシフトでレジストリ B が 16 になっていることがわかりますが、B を実行すると最終的に 10 になるのはなぜですか。

0 投票する
0 に答える
444 参照

assembly - DCPU-16で単純な「HelloWorld」プログラムを実行しようとしています

私はDCPU-16のasmを研究していて、単純なhelloworldプログラムから始めました。ここにあります:

プログラムはディスプレイを見つけ、ビデオRAMを登録し、文字をビデオRAMメモリにコピーしますが、画面には何も起こりません。誰かが私を助けてもらえますか?

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

c++ - エミュレーターの switch ステートメントのサイズを小さくしていますか?

この v1.7 仕様を使用して DCPU-16 エミュレーターの作成を開始しました。私はアーキテクチャーの構築を開始しましたが、非常に長い switch ステートメントを使用しているという事実が気に入りません。エミュレーターを書くのはこれが初めてなので、それを行うためのより良い方法があるかどうかはわかりません。スイッチはそれほど大きくありません、DCPU のオペコードの数が少ないため (そして、実際にはまだ命令を実装していないため)、より大きな命令セット用のエミュレーターを書いているかどうかは想像できます。巨大だろう。

とにかく、ここに私のコードがあります

編集:質問を伝えるのを忘れていました:

  • 大規模なスイッチを使用するよりもエミュレータを設計するためのより良い方法はありますか?
0 投票する
1 に答える
109 参照

dcpu-16 - dcpu-16 にはスタックがありますか、それともスタック ポインターは単に RAM アドレスを指していますか? (dcpu-16 エミュレーターの作成)

dcpu-16 エミュレーターを作成していますが、スタック ポインターを使用するオペコードの実装に問題があります。スタックポインタは何を指していますか? ラムアドレス?