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 に移動する必要があるようです。
誰かが私にこれを説明するのを手伝ってくれますか? トラップが呼び出されると、正確には何が起こっているのでしょうか? 命令の実際のコードがあるメモリ内の別のアドレスに移動してそれを実行しただけだと思いましたが、私が見たものはそれを反映していません。これにより、現在学校のプロジェクトを完了することができなくなっているため、どんな助けも大歓迎です。
ありがとう!