問題タブ [mars-simulator]
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.
arrays - 分岐ステートメントに戻るには?
Mips/Mars アーキテクチャでこれを実装する方法を見つけようとして、私は多くの問題を抱えています。
戦艦ゲームを作成し、100 int を保持できる配列としてボードを保存しています。
プレイヤーの配列をループして、ボードをユーザーに表示するために、各「セル」に格納されている情報をグラフィック データに変換する必要があります。
私の問題は、ユーザーに表示される文字が、配列の各セルの値に基づいているという事実に起因しています。
値が 0 (空) の場合 - '[ ]' を出力し、1 (推測して空) の場合 - '[O]' を出力し、2 (推測してヒット) の場合 - '[X]' を出力します。
そのため、配列内の各セルをループ処理するときに、値を確認して適切な印刷関数に分岐する必要があります。
私の問題は、print ステートメントに分岐した場合、分岐ステートメントがあった場所に戻るにはどうすればよいかということです。
擬似コード:
配列内の現在の位置を保持するために、印刷後に分岐ステートメントに戻るにはどうすればよいでしょうか?
どうもありがとう!
random - システムコールを使用して乱数を生成する
0 から 99 (包括的) のランダムな整数を生成しようとしていますが、42 syscall を使用するときに値を格納する場所を見つけるのに苦労しています。
これまでのところ、私は持っています:
生成された値がどこに保存されているかわからないので、使用できます。
assembly - このMIPSプログラムに問題があります
私の目標は、以下のCコードをMIPSアセンブリに変換することです。コードの重要な部分が欠落しているように感じます。誰かが私が間違っていることと、問題を解決するために私がしなければならないことを説明できますか?
Cコードは次のとおりです。
これまでの私のコードは次のとおりです。
assembly - MARS入力ファイルを指定する
MARSでMIPSアセンブリプログラムをテストしていて、実行中に入力として受け取るファイルを指定したいと思います(次のUNIXコマンドでstdinをリダイレクトすることで達成できるようなものです)。
spim -file [filename] .s <[input_file]
MARSでこのようなことを達成する方法はありますか?これは宿題であり、標準のMIPSシステムコールに制限されているため、MARSの拡張ファイル操作セットを使用できません。
私はこれを行う他の方法にもオープンです(どのMIPSシミュレーターでも)。プログラムをステップ実行し、実行中にデバッグする方法が必要です。上記のMIPSソリューションは、終了するか例外をスローするまで実行されます。その時点で、ステップバックしたり、メモリの内容を調べたりすることはできません。
アドバイスをいただければ幸いです。
assembly - If文、論理積、比較
MIPS アセンブリ言語は初めてです。学び始めたばかりです。ユーザーが入力したテストスコアの文字グレードを表示する必要があるというこの問題があります。これまでこれを行ってきましたが、機能させることができません。私は常に無効になり続けるか、プログラムが終了するか、D が表示されることがあります。
次のように想定されます。
私が間違っていることを理解し、コードを修正するのを手伝ってください!
問題の 2 番目の部分は、ユーザーが -1 を入力した後、A、B などの数を表示する必要があることです。これについてどうすればよいですか?true の場合、各グレードのカウントを別のレジスタに保存し、インクリメントし続ける必要があることはわかっていますが、これがどのように行われるかはわかりません。
編集: Windows 7 で MARS 4.1 ツールを使用しています。
assembly - データセグメントへの入力直後に出力を保存する
これは私のコードです:
サブルーチンを含むループがあります。subは($ v0 regで)'jr$ra'コマンドがフローをメイン関数に返すたびに保存したい出力を返します。データセグメントへの入力の直後にこれらの出力を保存する必要があります。どうすればこれを行うことができますか?それが1つの出力だけだった場合、私は言うことができます:
直後に保存されます。しかし、複数の出力があるので、一般的な方法でこれを行うにはどうすればよいですか?
arrays - アドレスに直接値を追加する
私は火星でMIPSプログラムを書いています。アドレスの配列をループしています。
私はこれを書きます:
ここで、$ t4にはアドレスの配列のベースアドレスが含まれており、ループが実行されるたびに8ずつシフトされます。次に、ループが完了した後、その場所にアドレスを保存します。
私の質問:8を足すのは正しいですか?または、1を追加する必要があります(1バイト= 8ビット、アドレスに追加するときに使用する番号がわからない...)
java - Ubuntu 11.04:MARSシミュレーターの実行
Ubutnu 11.04でアセンブリの宿題をするために、MARSシミュレーターを実行しようとしています。MARS(jarファイル)ではJavaをインストールする必要があるため、Javaをインストールしました。
その後、私はタイプしました
その結果、私は次のようになりました。
.jarからのメインクラスマニフェスト属性のロードに失敗しました
このファイルを正しく実行するにはどうすればよいですか?
alignment - 実行時例外、ストア アドレスがワード境界に整列されていません
私は得ています: 行 50: 0x004000c8 でのランタイム例外: ストア アドレスがワード境界 0x10010533 に配置されていません
なぜこれが起こっているのか誰か教えてもらえますか?「.align 2」はこれを防ぐはずではありませんでしたか?
mips - エラー: 「ストア アドレスがワード境界に配置されていません」
MARS MIPS シミュレーターと Digital Lab Sim を使用しています。
私のコードの目的は、Digital Lab Sim で 0 から 15 までの数字を 16 進数で表示することです。
このエラーが発生しています
これは私が使用しているコードです:
la $t0,0xFFFF0011
エラーの原因は命令にあります。0xFFFF0011 は左の LED を制御し、0xFFFF0010 は右の LED を制御します。
ここが面白い部分です。0xFFFF0010 を使用するとコードは期待どおりに動作しますが、0xFFFF0011 を使用すると動作しません。
私は何を間違っていますか?