問題タブ [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.
c - Pennsim と LC-3 プログラミング言語を使用して基本的なプログラミング タスクを開始するにはどうすればよいですか?
当面のタスクは、サブルーチン STRCPY を作成して、C プログラミング言語のstrcpy()
関数のような文字列コピー関数を実装することです。
知っている:
R1 はコピー元の文字列のアドレスです
R2 は、文字列のコピー先のアドレスです。
この関数は、ソース文字列のすべての文字を宛先アドレス (null ターミネータを含む) にコピーし、ソース文字列の完全な複製コピーを作成する必要があると想定されています。また、呼び出し元が新しい文字列に十分なスペースを割り当てていると想定でき、サブルーチンは呼び出し元に情報を返しません。
開始コードをここに示します。
最初はすべての LEA コマンドに圧倒されただけだと思います。そのため、ガイダンスや支援をいただければ幸いです。
lc3 - LC3 ループスルーし、ワードの左端のビットをテストします
単語があるので、ループして左端のビットをテストします。私は単語を持っていて、それをサブルーチンに渡しています。ループを構築する方法は知っていますが、単語の左端のビットをテストする方法がわかりません。
助けてくれてありがとう
assembly - LC-3 アセンブリでのスタックの使用
LC-3 で電卓を作成する Web サイトで見つけた問題に取り組んでいます。私はそれを段階的に進めており、スタックを使用して現在行っていることについて何かを見ました。これまでのところ、スタックを使用するように変換するために誰かが私を助けることができるかどうか疑問に思っていました.これまでのところ、私はレジスタを使用しています! 以下のコードは明らかに不完全です。これは、いくつかのことを行う方法について調査を停止して開始したときに得たものです。私がこれまでに持っていたもののLC-3コードは次のとおりです。
string - LC3 でサブルーチンを使用して文字列を読み取る際の問題
だから私は文字列を保存する方法がうまくいくと信じています。サブルーチンから文字列を渡す際に問題が発生しています。サブルーチンから何かを渡すには、R1 に格納する必要があると聞きましたが、WORD 配列に格納できません。
lc3 - LC3 プログラミング - ヒストグラムの印刷
以下のようなリストを印刷する必要があります。ここで、@ ビンはアルファベット以外のすべての文字用で、各アルファベット文字用のビンがあります。大文字と小文字の両方を同じビンに入れる必要があります。単語または文字の文字列を処理するための作業コードを既に開発しています。ただし、コードのこの 2 番目の部分をどこから開始すればよいかわかりません。これはLC-3にあります。前もって感謝します。
@ 000F
0002
B0001
C0004
D0002
E0005
assembly - シンプルな LC3 電卓
0 ~ 9、+、-、*、/、および ^ のいずれかの文字であるユーザー入力を受け入れるプログラムを作成しています。一度に 2 つのオペランドしか必要とせず、5 6 + や 2 8 / などの逆ポーランド記法で行います。ユーザー入力部分を除いて、すべてを理解しました。GETC と OUT を使用することは知っていますが、これら 2 つの関数がどのように機能するかを理解していないため、プログラムの開始時にそれらを実装するのにかなり苦労しています。これが私が持っているものです。現在、エラーなしでコンパイルされていますが、正しく動作していないようです。
;イントロパラグラフ
; レジスターの使用を定義することから始めます。R0 は、ユーザーが最後に入力した文字を保持します。R1、R2、R3、R4 ; これらはすべて、即時のタスクにのみ重要な値を保持する単なる一時レジスターです。R6 は私のスタック ポインターです。
; R5 は、スタックから情報を取り出すために使用するものです。まず、すべてのレジスタをゼロに初期化します。そこから私は取る
; ユーザーが最後に入力した文字を条件でフィルタリングして、それがどの文字で、どのサブルーチンかを調べます
。に送信します。0 ~ 9 の数値の場合は、スタックに直接プッシュされます。無効な文字の場合は、
;にジャンプします。メッセージを出力してプログラムを終了する INVALID_CHARACTER ループ。演算子の場合、DECODE に送信されます。
; 16 進値が反転され、いくつかの条件を経て送信され、それがどの演算子であり、どのループであるかが特定されます
。に送信します。各レジスタが何であるかについて混乱を招く可能性がある場合、レジスタの使用は演算子ループの上に記載されてい
ます。に使用されています。最後に、プログラムは改行文字を検出すると終了します。ここでは、xA を新しい行として設定し
ます。キャラクター。
lc3 - LC-3 コード セグメント
この特定の問題を理解するのに苦労しています。私は答えを持っていますが、なぜそれらが何であるかについての理由を本当に知りたいです! この問題に適用するだけではなく、各オペコードがどのように機能するかを理解しています.....
あるエンジニアが、自分が書いたプログラムをデバッグ中です。彼女はプログラムの次のセグメントを見て、メモリ内の位置 0xA404 にブレークポイントを配置することにしました。PC = 0xA400 から始めて、すべてのレジスタをゼロに初期化し、ブレークポイントに到達するまでプログラムを実行します。
コード セグメント:
ブレークポイントが検出されたときのレジスタ ファイルの内容を (16 進数で) 表示します。
繰り返しますが、私は答えのリストを求めているのではなく、プログラムで正確に何が起こっているのかを理解するのに役立つ説明を求めています. 本当にありがとう!