問題タブ [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.
assembly - データ ディレクティブの MIPS 命令
このプログラムが何をするのかを理解しようとしていますが、MARS が .data ディレクティブを正しく処理していないように感じます。
.data ディレクティブでアセンブリ命令を指定した場合、データ セグメントには何が格納されますか? これを MARS (MIPS アセンブラーおよびランタイム シミュレーター) で実行すると、値 0 が 0x10010000 (静的データが格納される場所) に格納されるだけです。lui $r1, 0xFFC0
(つまり、0011110000001001111111111000000)のマシン コードを格納することを期待していました。
ありがとう!
assembly - 除算結果を MIPS で表示
こんにちは、MIPS で小さなプログラムをコーディングしています。このコードがあります。
(完全なコードではなく、セクション処理部門のみ)
$t1 が 2 の場合、$t2 は 9 です。
したがって、2/9 は 0.2222222222222222 です。
しかし、実行すると0.0しか得られません
なぜ?、本当の結果を表示するにはどうすればよいですか?
前もって感謝します。
assembly - MIPSのローカル変数への整数の読み取り
MIPSで整数をローカル変数に読み込むにはどうすればよいですか?
問題は、整数変数をローカル変数として割り当てるという概念を使用するように私に求めています。(私の教科書からの質問です。)
assembly - 擬似命令を使用せずにメモリアドレスをロードする方法は?
MARSシミュレーターを使ってMIPSアセンブリ言語を独学で学ぼうとしています。
教訓的な理由から、私は疑似命令を使用しないように制限しています。
あるデータのアドレスをレジスターに取得しようとしているときに、 を使用できないために問題が発生しましたla
。
lui
と組み合わせて使用しようとしましori
たが、数値を直接ロードするのと同じように、役に立ちませんでした:
これは、疑似命令なしで、具体的に MARSを使用して実行できますか? どのように?
前もって感謝します!
string - 文字列内の1文字にアクセスする
システムコール機能を備えたSPIMSやMARSのようなものを使用しています。
私は次のように文字列を読んでいます(そしてそれを印刷できるので機能します):
ただし、文字列の1文字にアクセスする際に問題が発生します。したがって、最初の文字にアクセスしてそれを印刷したい場合は、これを試しています。
私がこのようなことをしようとすると:
これにより、文字列が文字列全体を指すため、文字列全体が出力されます。
私が次のようなことを試みた場合:
それは私に範囲外のエラーを与えます。理由はわかりませんが、文字は1バイトの長さではなく、文字列の最初のバイトを$ a0にロードするだけですか?
ありがとうございました
assembly - 一時レジスタの使用方法 - 戻り後に値は保持されますか?
MARS シミュレーターを使用して MIPS アセンブリーでプログラムを作成しています。を使用jal
して関数呼び出しをjr $ra
行い、その最後に を使用してプログラムの元のポイントに戻ります。
私が混乱しているのは$t
、関数で使用したレジスタに、メイン プログラムに戻った後も値が残っていることです。
一時レジスタを使用する将来の関数が白紙の状態で開始できるように、戻る前にこれらのレジスタをゼロにする必要がありますか? ここで何か不足していますか?
assembly - ラベルのメモリアドレス指定
MIPS でラベルのアドレスを変更または修正することはできますか? (MARSを使っています)
例えば...
「x」はメモリにランダムに保存されるようになりましたが、特定のアドレスに保存したい場合はどうすればよいですか? 出来ますか?
assembly - MARS で li.s を使用できないのはなぜですか?
MARSでli.sが使えません。私は MIPS プログラミングが初めてで、コ プロセッサを使用しないようにしています。li.s を使用できないのはなぜですか? MARS はプログラムですか? 誰かが私を新しい方向に導いてくれるととても助かります!
assembly - MIPS "la" 疑似命令
MIPS では、la
命令は と に変換されlui
ますori
。ただし、MARS Simulator はそれをまったく行っていないようです。次のマシンコードをダンプすると:
私は得る:
これは明らかにです。la
1命令としてダンプです。MARSは何をしますか?と解釈la
するにはどうすればよいですか?lui
ori
ありがとうございました、
assembly - BNE MIPS 命令のデコード
MARS シミュレーターで次の MIPS コードを実行しています。
機械語では、bne
命令は次のとおりです00010101011000001111111111111001
。この場合、即値は:1111111111111001
に等しい:0xFFF9
です。MIPS はそれを受け取り、それを 2 だけ左にビット シフトし (4 倍します)、そのプログラム カウンターをその数値にします。ただし、0xFFF9
4 倍は0x3FFE4
です。そんなことがあるものか?のプログラム カウンターはSLL
0x18 であり、 ではありません0x3FFE4
。ここで何が欠けていますか?
ありがとうございました、