7

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 の両方で同じ動作が見られます。)

4

0 に答える 0