問題タブ [lc3]

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

lc3 - LC-3 カウンターをリセットするにはどうすればよいですか?

誰でもこのプログラムを実行できますか、またはカウンターが更新されない理由を理解するのを手伝ってくれますか?

プロンプトからテキストを読み取り、テキストの長さを見つけて、入力された実際のテキストを印刷する前にコロンで出力することになっています。

初めて「test」と入力した場合、長さは4ですが、ループバックして開始すると、もう一度入力するように求められ、正しいテキストが出力されますが、テキストが長くない限りカウンターは変化しません。

したがって、「I」と入力すると、test の方が長くて 4 であるため、4 の長さが出力されます。しかし、7 文字の「Control」と入力すると、カウンターが 7 に更新されます。

出力:

ありがとうございました!

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

assembly - PRINT サブルーチンを lc3 アセンブリ言語で実装するにはどうすればよいですか?

こんにちは、私は lc3 アセンブリ言語の初心者で、次の課題があります。

以下に示す印刷、右シフト、およびシフト サブルーチンを実装する必要があります。これらのサブルーチンのいずれかの助けをいただければ幸いです。

また、すべてのサブルーチンは、R7 を含むすべてのワーキング レジスタを保存/復元する必要があります。

LSHR アルゴリズムは次の場所にあります: http://users.cis.fiu.edu/~pestaina/RightShift.pdf。論理右シフト アルゴリズムを実装して RSHIFT サブルーチンを完了します。 RSHIFT をテストするには、MAIN の JSR SHIFT 命令を一時的に JSR RSHIFT に置き換えます。プログラムは、元のデータと右シフトされたデータを 6 回表示するはずです。

SHIFT サブルーチンを完了します。シフトされるデータは R0 で渡されます。R1 の値は次のようにシフト タイプを示します。 R1[0]; 算術シフトは R1[1] で示されます。循環シフトは R1[2] で示されます。ヒント: すべての左シフトは、論理左シフト (LSHL) のマイナーなバリエーションとして実装できます。LSHL は、データムをそれ自体に追加するだけで実行できます。ヒント: すべての右シフトは、RSHIFT サブルーチンに既に実装されている Logical Shift Right のバリエーションとして実装できます。

簡単な印刷アルゴリズムは次のとおりです。

これは私が完了する必要があるプログラムです

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

assembly - アセンブリで文の単語数を数える方法。

申し訳ありませんが、stackoverflow に投稿するのはこれが初めてなので、不適切な布告をお許しください。ユーザーに文と単語を要求する LC-3 アセンブリ コードを投稿しました。次に、プログラムはそれが文の中で何回出てwordくるかをチェックします。次にカウンターを出力します。私の問題は、2つの文字列にetherが含まれているspaceためenter、一致しないことだと確信しています。

また、私はまだ総合カウンターを実装していません。助けてくれてありがとう。


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

stack - C コードのランタイム スタック

質問のタイトルが正しいかどうかわかりませんが、ランタイム スタックを勉強していて、次の C コードがあります。

これはコンパイルされ、場所 x3000 にロードされます。

私はlc3と呼ばれるシミュレートされたコンピューターを扱っています。このコードが実行されたときにランタイム スタックがどのように見えるかを調べる必要があります。このトピックに関する私の理解は、実際にこれを解決するにはあまりにも限られていますが、次のように考える必要があります。

誰かがこの件について明確に説明してくれることを願っています。前もって感謝します。

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

verilog - Verilog での LC-3 16 ビット プロセッサの間違ったシミュレーション

LC-3(Little Computer) CPU の設計に取り組んでいます。PC ユニット、制御ユニット (Finite State Machine として)、命令メモリ、ALU ユニット、データ メモリのモジュールを設計しました。Main として機能する Register File ユニットもあり、モジュール呼び出しはこのユニットで行われます。

outPCreadが1のとき、変数から代入される変数を取得し、 inPCwriteが1のとき、変数をインクリメントするだけのようにプログラムが動作するようにしたいoutout命令メモリに送信されたアドレスです。

問題は、シミュレートすると、命令が命令メモリにロードされないことです。PCread 変数と PCread 変数の両方を最初の状態でリセットしたため、PCwrite はコントロール ユニットの最初の状態では機能しません。これを行うのは、1 つの命令が動作を完了するまで命令をロードしたくないからです。これを処理する方法が見つかりませんでした。

これが解決されれば、プロセッサが動作することはわかっています。初期化された値を使用して 1 つの命令で試してみると、動作するからです。

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

assembly - 組立:LC3部門

私はアセンブリ言語に非常に慣れていません。クラスでは、LC3 シミュレータを使用して分割プログラムに取り組んでいます。以下は私の除算アルゴリズムのコードです。

たとえば、4 と 2 のように 2 つの入力を入力すると、商が 2 になり、剰余が 1 になります。9,3 を入力すると 6 残り 1..

何か案は?

0 投票する
3 に答える
4752 参照

lc3 - LC3でnzp=000でBRする方法

withと offsetx0000を意味するinst を書いてみました。BRnzp=00

BR #0シミュレーターで書きました。

x0000シミュレーターでそれを与える代わりに、0x0E00どの手段nzpがであるかを取得し111ます。

これを行う正しい方法は何ですか?