問題タブ [spim]

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

mips - 私の次のコードは正しいですか?

コマンドは対応するコメントで正しいですか? 「サイズ」、「配列」、「結果」の意味や、それらをコードに組み込む方法など、mips アセンブリ言語を理解するのに苦労しています。

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

string - MIPS アセンブリ: フィールド エラーに対して即値が大きすぎます

プロジェクトの一部でユーザーが入力した文字列を保存しようとすると、単にファイルをロードすると、spim で次のエラーが表示されます。

フィールドの即時値が大きすぎます: [0x0040009c]

以下は私のコードです:

さて、これを実行すると、上記のエラーが発生します。しかし、その理由はよくわかりません。文字列が 32 ビットであることが原因でしょうか? 理由についての説明をいただければ幸いです。再度、感謝します!

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

assembly - Xspim シミュレーター: mtc1 で int を転送する

整数 9 をコプロセッサーに転送し、その平方根の上限を取得してから、この値を転送して出力するコード:

(*) のある行に関する注意: (1) .s の代わりに .d も試しました。(2) ソースレジスタとデスティネーションレジスタを別のものにしてみました ( $f0to$f2と back )。 

私の結果は 1 です (代わりに発言権を取得した場合は 0)。ただし、*-ed 行をコメントアウトすると、9 が細かく転送され、9 が出力されます。 

転送後 (および CPU への転送前) に syscall "print_double" (=3) を追加して、転送された数値を出力すると、非常に小さな正の数値が出力されます。 

私の質問: 

(a) 何が起こっているのですか?

(b) mtc1: CPU から転送された整数は double または single として受信されますか? で送り返す前にmfc1、シングルかダブルか、それとも関係ないか?( などを使って実験しcvt.d.sましたが、役に立ちませんでした)

備考: 「コンピュータの構成と設計」(パターソン、ヘネシー) を使用して、楽しみのためにこれを行っています。第 4 版では、mtc1付録 B.10 に間違った構文があります - と の順序はrd上記rsのとおりです。

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

assembly - MIPS で文字列を読み書きする

文字列を読み取り、その文字列を画面に表示するだけのコードを作成しようとしています。ここに私が書いたコードがあります:

次のエラーが表示されます: spim: (parser) Label is defined for the second time on line 2 of file code.s main : ^ これを修正するにはどうすればよいですか? ありがとう。

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

c - C Loop から MIPS アセンブリ言語への変換 (不正なアドレス エラー)

文字列の文字を反復処理する単純な MIPS アセンブリ コードを書いています。

指定された部分文字列のインスタンスを見つけます..

まず、c コード:


これは私の MIPS コードの一部です。


ただし、このコードを実行すると、この無限ループが発生します

アドレス エラー:



不正なアドレス エラーが 3 行目と 5 行目から発生していることに気付きました

j_body (ロードバイト命令)。文字列アドレスを初期化したので、これがなぜなのかわかりません

ハプニング...

ここに私の質問があります:

  1. この無限ループが発生するのはなぜですか? (iとjのforループを正しく実装したと思いました)

  2. 不正なアドレス エラーが表示されるのはなぜですか??

ありがとう :)

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

assembly - PC での Mips 例外

現在、数学シーケンスを生成するための mips プログラムを開発しようとしています。ただし、PC で Mips 例外が発生し続けます。

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

assembly - SPIM - SPIM が再初期化されるまで、レジスタ/メモリの値は保持されますか?

それで、私はクラスのプロジェクトを提出していますが、プログラムの両方の部分が機能しています。

しかし、私は気づいた:

プログラム ( load "p5a.mal") をロードし、 で実行するとrun、動作します。

もう一度入力すると、同じ入力を入力すると、宣言された変数が前回の実行からの値を保持してrunいることを示す動作が示されます。.text

宣言されている変数の例を次に示します。

たとえばwordcount、前回の実行で 10 だった場合、2 回目の実行では 20 が出力されます。

これは SPIM の標準的な動作ですか? または、変数を正しくゼロ設定していませんか?

SPIMに「再初期化」コマンドがあることは承知していますが、2回目の実行はとにかく(「再初期化」と入力せずに)機能する必要がありますか?