問題タブ [little-man-computer]

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 投票する
3 に答える
5108 参照

assembly - LMC - マイナスにならない (リトルマン コンピューター)

ここでLittle Man Computerと一緒に仕事をしていて、私を悩ませている問題に遭遇しました。if などがないので、偶数から引き算するときに奇数が負数になるのを止めるのは難しいと思います。たとえば、ループで 10 から 3 を取り、0 で分岐します。しかし、それがゼロになることはありません。たとえば、ループで 10 から 3 を引くと、10、7、4、1、-2 になります。しかし、私はそれを1で止めたいので、マイナスにならず、この問題を克服します。

これは私がこれまでに持っているもので、偶数と偶数に対してのみ機能します:

(最初に、2 番目の入力を変数として宣言するのは良い考えだと思いますよね? それともそうでない?)

お役に立てば幸いです。そして、これに対する恒久的な解決策を考え出してください。

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

c++ - C++ での演算子のオーバーロードと配列処理

私は Little Man のコンピューター シミュレーションを書いています。Indexing operator をオーバーロードしたいと考えてい []ます。LMC というクラスを作成し、次のことを行いました。

エラーなしでプログラムを実行できます。私がそれmailbox = 0を述べたときfunction = 123、それは問題ありません。

次のように表示されます。

この表示は間違っています。以下を表示する必要があります。

論理エラーがありますか、それとも配列をオーバーライドして元の配列を表示していますか?どうすれば修正できますか?

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

assembly - 最大値と最小値を見つけることによって2つの数値を乗算する

アセンブリ言語形式でのコーディングの基本を学ぶために、可視仮想マシンと呼ばれるリトルマンコンピューターシミュレータープログラムを使用しています。現在、私は任意の2つの数値(xy)を乗算しようとしていますが、最大の数値を取得し、それに小さい数値の何倍に等しいかを加算することにより、効率的な方法で。数字を入れ替えて、最大の数字を取り、小さい数字の何倍に等しいかを追加するにはどうすればよいですか?

例えば

入力は次のいずれかになります。

5 * 12また12 * 5

効率的な計算:

12 + 12 + 12 + 12 +12 = 60

効率的ではありません:

5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 = 60

コード:

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

sorting - 3 つの数値の最小から最大への並べ替え

現在アセンブリ言語を勉強中です。2 つの数値を最小から最大に交換する簡単な短い関数を作成できました。3 つの数値でこれを行うために同じ基本的な基盤を適用していますが、比較を実行するたびに無限ループに入ります。を使用してこの関数を宣言してい*60ます。3 つの数値を最小から最大に正しく並べ替えるにはどうすればよいですか? また、追加の変更を加えずに、同じ関数で 2 と 3 の数字の並べ替えを実行する方法はありますか?

いくつかのアセンブリ プログラムでは、構文がわずかに変更されています。HEREは、私が現在使用している教育アセンブリーのリトルマン コンピューター シミュレーターのリンクです。

2 つの数値を使用したワーキング スワップ:

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

hardware - リトルマン コンピュータの各ワードの最小ビット数は何ビットでなければなりませんか?

CSの本を読んでいるときに、次の質問に出くわしました。誰か説明してもらえますか? >"Little Man コンピュータは、10 個のオペレーション コード (0-9) とアドレス 100 ワードのストレージ (0-99) を持つことができます。10 進数を 2 進数で置き換える場合、LMC の各ワードの最小ビット数は何でなければなりませんか?なれ?"

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

assembly - アセンブリ言語の質問。リトルマン・コンピューター・プログラム

古いアセンブリ言語を使用して、LMC で 2 つの異なるプログラムを作成しようとしています。最初は次のとおりです。

ゼロに達するまで、2 つの入力、カウントダウンする数値、およびステップ値 (例: 35 から 5 ずつカウントダウン) を取る LMC プログラムを作成します。各ステップと、シーケンスがゼロで終わらない場合はゼロの前の最後の数値を出力する必要がありますが、数値が負になると、その数値は出力されません。13 と 3 を入力として使用した出力例は、13、10、7、4、1 です。入力として 12 と 3 を使用した出力例は、12、9、6、3、0 です。

私はこれに沿って何かを試しました:

うまくいかないもの

私が書こうとしている 2 番目の LMC プログラムは次のとおりです。

三角形の面積と周長を計算するコードを書きます。プログラムは、三角形の底辺、高さ、3 番目の辺の順に 3 つの入力を受け取る必要があります。コードは、出力ボックスに 2 つの値を生成する必要があります。最初の数値は面積で、2 番目の数値は周長です。(ヒント: DAT ステートメントを使用して、いくつかの値を保存することをお勧めします)。

私はこれをどこから始めるべきかさえ知りません。

どんな助けでも大歓迎です。

役立つサンプルコードもいくつかあります。

周囲と面積を計算する - 入力として L と W を取り、最初に周囲を出力し、次に面積を出力します。

2 つの数を乗算します。

最初の数値入力をそれ自体に加算し、合計から 2 番目の入力を減算します

入力からゼロまでカウントする 1 つの方法

数の二乗

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

little-man-computer - little man computer- ブランチ オン ポジティブ

Little Man computer(LMC)では、Branch on Positive(BRP)の条件に0が正の数として含まれています(number>0が正だと思っていました)。LMC が想像力に富んだ概念であることは知っていますが、プロセッサ (古いものまたは現在のもの) が正の数としてゼロを含む正の分岐を使用するかどうか疑問に思っていましたか?

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

little-man-computer - ユーザー入力によって素数を見つけるLMC

こんにちは、みんな、

1 から 100 までの素数を検索するコードがありますが、これをユーザー入力間の素数のみを検索するプログラムに再作成するのに苦労しています。

ある数から別の数を引き、その数を 2、3、4、5 で割る計画がありました。

これについてどうすればよいかアドバイスはありますか?コメント不足で申し訳ありません。

0 投票する
4 に答える
5277 参照

little-man-computer - リトルマンコンピュータの割算数の剰余(モジュラス)について

ユーザーに 2 つの数字を入力するよう求めるプログラムを作成します。次に、プログラムは、2 番目の数値を最初の数値で割った余り (係数) をとった結果を画面 (OUT) に表示します。たとえば、最初に入力した数字が 14 で、2 番目に入力した数字が 5 の場合、プログラムは 4 を表示します。

14 mod 5 = 14 - (2 * 5) = 14 - 10 = 4

14 mod 7 = 14 - (2 * 7) = 14 - 14 = 0

入力された数値は常に正であり、0 より大きいと想定することができます。

こんにちは、これは質問です。この質問を開始する方法がわかりません。

0 投票する
0 に答える
524 参照

assembly - LMC / アセンブリでソートをマージする

LMC でマージソートを実装し、事前にソートされた値の配列を入力してそれらを保存し、次に 2 番目の事前にソートされた値の配列を入力し、それらを最初の配列とマージソートしたいのですが、私は多くの問題を抱えています私のソートと配列シフトループ。小さい値を挿入するために配列を下にシフトし始める場所を知るためにラベルを使用しています。1、2、0 を入力してから 2、3、0 を入力すると、(003 002 002 001) が出力されます。