問題タブ [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 投票する
0 に答える
276 参照

mips - 遅延スロットの順序MIPS

ロード命令の後に別のロード命令があるとすると、実行の順序は何ですか?例:

Spimでテストしたところ、結果は(1)->(2)->(3)の順でしたが、負荷の指示では負荷遅延スロットを考慮に入れる必要があるため、理解できません。

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

assembly - MARS で動作するように mips-gcc の出力を微調整する

mips-gcc によって生成された MIPS アセンブリ コードは、Mars MIPS シミュレーターでほとんど実行されますが、完全には実行されません。例えば:

  • コンパイラは、「jr $31」ではなく「j $31」を生成します。
  • コンパイラはテキスト セグメントに .align ディレクティブを配置しますが、これは Mars では許可されていません。

さらに、生成されたアセンブリは、適切に開始および停止するように完全に設定されていません (つまり、最後に sycall 10 がありません)。

これらの問題はすべて、単純なスクリプトで簡単に修正できるようです。しかし、車輪を再発明する前に、私は疑問に思っていました: (1) これらの問題のいくつかを解消する gcc フラグはありますか? (2) 火星で実行できるように mips-gcc の出力を修正する既存のプログラムを知っている人はいますか?

(FWIW、gcc 3.3.6 と 4.6.1 の両方で同じ動作が見られます。)

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

mips - mips の部分文字列とインデックスを見つける

部分文字列と最初の出現インデックスを見つけようとしています。しかし、何かが間違っています。ポインターが '\0' に到達するまで、パターン配列の各要素と文字列配列の各要素を比較します。どうしたの。アルゴリズムは完全に間違っていますか?

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

assembly - MIPS「位置合わせされていないアドレス、例外 5」エラー

私は SPIM MIPS シミュレーターを使用している初心者です。
26 ワードの配列を 0 に初期化しようとすると、タイトル X で 26 回エラーが発生します。問題を store word operation に切り分けましたが、sw $t0, 0($s3)何が間違っているのかわかりません。

コード:

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

assembly - MIPS で文字列の文字を検索する

MIPS で既知の長さを持つユーザー入力文字列で特定の文字を見つけるにはどうすればよいですか? 私はSOや他の多くのWebサイトを見てきましたが、ユーザーが入力したデータを操作する方法を根本的に説明しているようには見えません。

これが私がこれまでに持っているものです:

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

assembly - read_charsyscallがコマンドラインspimで正しく機能しない

私はこの単純なプログラムをMIPSアセンブリで作成しました。

QtSpimで実行すると、正しく機能します。コンソールから文字を取得し、入力するとすぐに印刷して、繰り返します。ただし、QtSpimのコンソールでは、プログラムの入力を貼り付けることができません(できますが、読み取られません)。そこで、spim for Linux(コマンドライン)バージョン9.1.8で実行してみました。動作しますが、文字が入力されてもすぐには反応しません。カットアンドペーストせずに文字を入力する場合でも、常に改行を待ちます。だから私はこの振る舞いを期待しています:

しかし、私は代わりにこれを手に入れます:

何か案は?前もって感謝します。

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

assembly - Mips: "Hello World" 遭遇エラー

Mips で "Hello World" (インターネットで見つかった例から) を表示して、それがどのように機能するかを確認しようとしていますが、エラーが発生します。最初に次のエラーが発生しました:"spim: (パーサー) ラベルは、 2 回目はファイル C:Program Files (x86) main の 6 行目: # Execution starts at label "main" " ^ 修正するために、再初期化してリロードしました。次に、Qtspim を実行すると、次のエラーが表示されます。 $a0 に出力されます

誰かが最初と2番目のエラーの原因を説明できますか? オンラインで見つけたコードをテストして、課題を試す前に Qtspim がどのように機能するかを理解しようとしています。Windows 08 で Notepad++ を使用しています。ご協力をお願いします。以下はコードです。

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

arrays - MIPSで配列にfloat値を追加しようとしましたが、例外7エラーが発生しました

それぞれ 20 位置の 2 つの配列 (配列 HEIGHT および RADIOUS) で浮動小数点数を追加および検索できるようにするプログラムを作成する必要があります。追加部分に問題があります... ユーザー入力を読み、最初の float 値を配列に追加しようとすると、EXCEPTION 7 エラーが発生します...データアドレスが間違っていると表示されます。他に何をすればいいのかわからない...私はSpimを使用しています..

これが私のコードです:

ありがとう!

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

arrays - MIPS ユーザーが配列に整数を入力してから出力する

こんにちは、私はアセンブリ言語を書く練習をしており、この一見単純なコードに取り組んでいます。ユーザーに入力を求めたいので、その入力を取得して配列に入れたいと思います。次に、配列を印刷したいと思います。配列に入れずに印刷できることはわかっていますが、これは私の練習用です。印刷されませんが、何かが正しくありません。

私が間違っていることを手伝ってください。ああ、ゼロは、入力の終わりを意味するゼロをヒットしたときのセンチメンタル値のようなものです

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

mips - MIPS - Word の読み込み動作

仲間の SO ユーザー

SPIM を使用して MIPS コードを実行しているときに発生している動作について、誰かが説明してくれることを願っています。暗号化アルゴリズムを実装していますが、手順の 1 つは 64 ビット幅の暗号化キーをロードすることです。たとえば、暗号化キーが の場合0x123456789ABCDEF0、次のように宣言します。

今では、最初にロードするときはいつでも、ロードできるようenc_key_loに に遭遇するかどうかを確認します。以下は私のコードです。0enc_key_hi

コードを実行すると、ループの連続した繰り返しでレジスター$s0が次のようにロードされることがわかります。load_lo

$s0ロード後にレジスタが 0 でロードされることを期待してい78ましたが、 までロードし続けF0ます。したがって、これload_hiはコードにセグメントを含める目的に反します。宣言をコメントアウトするとenc_key_hi、 then$s0がロード0後にwith がロードされることに気付きました78

誰かがこの動作を説明してもらえますか? 敬具。