問題タブ [lc3-trap]
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.
lc3 - カスタム LC-3 トラップ ルーチンの使用
Trap x26 経由で Trap 呼び出しとして使用するサブルーチンを作成しました。サブルーチンのコードはアドレス x3300 にあります。x26 から x3300 のサブルーチンの実際の命令にジャンプする方法がわかりません。ギャップが JSR の PC オフセット パラメータで許可されているよりも大きいためです。x3300 までずっとジャンプできるようにするために、x26 の近くにコードを追加できることはわかっていますが、そうすべきだとは思いません。一般的にトラップを理解する上で何かが欠けていると思います。
これがトラップの私の理解/混乱です。つまり、x0000から-X00FFはトラップベクターテーブルです。たとえば、 を呼び出すTRAP x20
と、PC は x20 に移動し、x20 で命令の実行を続行します。(これが間違っている場合はお知らせください!) LC-3 のアドレス x20 にはBRZ x0021
、PC を x21 に移動するコマンドがあるため、この時点で混乱しています。x21にはBRZ x52
コマンドがあります。このブランチが実行されて x52 と PC に移動すると、そこにコマンドがありTRAP x00
ます。Trap 20 のコマンドのほとんどは、これらの (どのように見えるか) ナンセンスなトラップ コマンドに移動するようです。トラップ x00 が実行された後、プログラムは xFD79 に移動します。メモリ内の x00 には別のTRAP x00
. 私には、プログラムは xFD79 ではなく x00 に移動する必要があるようです。
誰かが私にこれを説明するのを手伝ってくれますか? トラップが呼び出されると、正確には何が起こっているのでしょうか? 命令の実際のコードがあるメモリ内の別のアドレスに移動してそれを実行しただけだと思いましたが、私が見たものはそれを反映していません。これにより、現在学校のプロジェクトを完了することができなくなっているため、どんな助けも大歓迎です。
ありがとう!
branch - LC-3 文字列全体を読み取り、Enter キーを押すと出力する
私は LC-3 をいじるのが初めてで、問題が発生しています。「こんにちは、私の名前はコナーです」などの文字列全体を入力できるようにしたいのですが、Enter キーを押すと、コンソールにエコーされます。文字を読み取り、スペースが押されるまで継続的にエコーする前に問題を解決しましたが、文字列全体を作成して入力時にエコーする方法がよくわかりません。始めるための助けはありますか?
最終的には次のようになります (すべての .fill コマンド):
lc3 - LC3 TRAPの指示
これは私に多くのトラブルを引き起こしている質問ですが、2 週間後に行われる最終試験のために理解する必要があります。言い回しのせいかどうかはわかりませんが、具体的な答えにたどり着く方法がわかりません。質問は次のとおりです。
「Bob は LC-3 TRAP 命令のメカニズムを変更する予定です。彼には 2 つのアイデアがあります。TRAP 命令のビット [8:11] を利用する。トラップ ルーチンの最初の命令は、トラップ ルーチンの開始アドレスではなく、TRAP 命令. 彼の新しい設計では、元の LC-3 TRAP と同じ数の TRAP ルーチンを実装したいと考えています. 各 TRAP ルーチンが彼の中に持つ命令の平均行数を計算します.新しいデザイン。」
TRAP には x20、x25、x23 の 3 つの基本的な TRAP ベクトルがあることを知っていますか? 「命令の行数」とはどういう意味ですか?
lc3 - トラップ ベクター テーブル LC3 にロケーションをロードする方法
割り当ては、トラップ ベクタ テーブルの場所 x0026 に書き込むように求められたトラップの場所をロードするように求めます。レジスタへのロードについては理解していますが、トラップ ベクタ テーブルへのロードについてはよくわかりません。どんな助けでも大歓迎です!
lc3 - LC3 不正なベクタ番号で実行されたトラップを取得し続ける
ユーザーに数値入力をバイナリで表示するプログラムを作成しようとしています。現在、私が持っているのは、ユーザーがすべての文字を入力し終わったらユーザーの番号を取得するためのセットアップだけですが、以下のコードが実行されない理由がわかりません。
ループ
同じ数を10回足して掛ける
assembly - LC3 サブルーチン - カスタム トラップ ルーチン
私は、トラップ (PUTS) を模倣するサブルーチンを作成することを目標とする質問に取り組んでおり、コンソールに文字列を書き込みます。この文字列アドレスは r0 にあると想定できます
これは私がこれまでに持っているものです。最初の文字 's' で機能し、その後は印刷をループし続けます >>>>>> すべての提案を試しましたか?