問題タブ [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.
assembly - LC3 アセンブリ言語プログラム
ユーザーからの文字入力を対応する 10 進数値に変換するにはどうすればよいですか? 始めるのに苦労しただけです。
プログラムは、次のことを達成する必要がありました。
プログラムはキーボードからの文字を受け入れます。
文字が数字 (「0」から「9」) の場合: a) 文字を対応する 10 進数値に変換します。つまり、'0' はゼロになり、'1' は 1 になり、...'9' は 9 になります。その値を R (「ランレングス」) と呼びましょう。b) 別の文字を待ちます (GETC を使用)。c) その文字の R 個のコピーをコンソールに出力します。) d) ステップ 1 に戻ります。
文字が Enter/Return (ASCII #10) の場合: 改行 (ASCII #10) をコンソールに出力し、手順 1 に戻ります。
- それ以外の場合は、プログラムを停止します。
string - 文字列反転 LC3 アセンブリ言語
私は、LC-3 アセンブリ言語に基づいて .asm プログラムを作成しています。このプログラムは、文字列のリストをループし、それぞれを逆にして、リスト内の場所に戻します。
例えば:
プログラムはそのリストを " bbbaa
"、" avcbb
"、および " edcba
" に反転します。つまり、文字列を逆にしますが、リストの順序は維持します。
私は現在、ネストされたループのアイデアに取り組んでいます.外側のループが弦から弦へと移動し、内側のループがそれらを反転し、それは私のお尻を蹴っています! 同じことをするために Java でコードを書き、5 分かかりましたが、何らかの理由で、アセンブリが私の脳にうんざりしています。これを行う方法についての指針はありますか?
これまでのところ、疑似とアセンブリを組み合わせたものを次に示します。
そして、文字列間の外側のループを行う方法が少しもわかりません。
TL;DR - メモリ内の文字列を逆にするアセンブリ プログラム、助けてください。
assembly - LC3アセンブリ言語用プログラム
ユーザーからの文字入力を対応する 10 進数値に変換するにはどうすればよいですか? 始めるのに苦労しただけです。
プログラムは、次のことを達成する必要があります。
プログラムはキーボードからの文字を受け入れます。
文字が数字 (「0」から「9」) の場合: a) 文字を対応する 10 進数値に変換します。つまり、'0' はゼロになり、'1' は 1 になり、...'9' は 9 になります。その値を R (「ランレングス」) と呼びましょう。b) 別の文字を待ちます (GETC を使用)。c) その文字の R 個のコピーをコンソールに出力します。) d) ステップ 1 に戻ります。
文字が Enter/Return (ASCII #10) の場合: 改行 (ASCII #10) をコンソールに出力し、手順 1 に戻ります。
それ以外の場合は、プログラムを停止します。
assembly - 無限ループに陥る (LC3 アセンブリ言語)
現在、LC-3 アセンブリ言語の課題に取り組んでいます。この割り当てでは、LC3 アセンブリ言語でプログラムを実装します。このプログラムは、ユーザー入力文字列を取得し、それらをユーザーにエコー バックして、文字列をパックします。プログラムはすでに完成していますが、2 つのサブルーチンを完成させる必要があります。Get String サブルーチンを実行していて、コードが無限ループに陥ってしまい、その理由がわかりません。それほど問題がなければ、誰かが私のコードを見て、問題を見つけられるかどうかを確認できますか? GETSTR サブルーチンを使用しているブランチと関係があると思いますが、よくわかりません。これまでの私のコードは次のとおりです。
integer - lc-3 整数値をレジスタに追加する方法
私は LC-3 が初めてで、簡単なプログラムを書こうとしています。2 つの整数 2、3 を 2 つの異なるレジスタにロードし、合計を出力しようとしています。これが私のプログラムで、2 と 3 を加算する代わりに 32 と 33 を加算し、65 に対応する ASCII 文字を与えています。5 を出力するようにプログラムを修正するにはどうすればよいですか? また、OUTがR0の値を出力することは知っていますが、R1とR2の値を出力するにはどうすればよいですか? LD を使用する以外に整数値をレジスタにロードする別の方法はありますか?
.ORIG x3000
ツー .フィル x32 スリー .フィル x33
どんな助けでも大歓迎です!
lc3 - LC-3 でレジスタの値を表示する
値をレジスタに表示/出力する方法を考えていました。
例: R3 には値 2 が格納されています。その番号を画面に表示したい。
以下のコードは、ラベルが必要であることを示しているため、機能しません。また、R3 の値を R0 に保存しようとしましたが、表示するとファンキーなシンボルが表示されます
LEA R0、R3
プット
lc3 - LC-3 で分割するにはどうすればよいですか?
lc3 の分割方法を教えてください。私はそれを行う方法を本当に理解していません。たとえば、int 250 をランダムなメモリ ロケーションに格納し、それが x0102 として表示される場合、それを分割して 250 が 2、5、0 になるように分割するにはどうすればよいですか?