3
frogger:
    jal teechar
    jal update_frog
    lw $t0,game_indicator
    li $t0, 0

さて、これが機能です。私は teechar と update_frog 関数を完全に作成して動作させています。最初の 2 つの箇条書きは理解できますが、最後の 2 つの箇条書きについてはわかりません。MIPS で最後の 2 つの箇条書きをどのように記述しますか?

ここに機能命令があります:

引数を取らず、文字を返す MIPS 関数フロッガーを書きます (テストを簡単にするため)。次のことを行います。

  • teechar を呼び出して文字を読み取ってエコーする c.
  • update_frog(c) を呼び出します。
  • c がゼロ以外の場合、c をグローバル変数に格納して、ゲームが終了したことと、その終了方法を示します。(もちろん、そのグローバル変数をゼロに初期化する必要があります。)
  • cを返します。

これが私のコードです:

frogger:
    jal teechar
    jal update_frog

申し訳ありませんが、これを行う方法を考えるのに苦労しています:(

4

1 に答える 1

1

グローバル変数のために、引数を渡すか、特別な目的のレジスタを使用する必要があります。関数が引数を取らないように指定したため、frogger が呼び出されるたびに c の値を保持するレジスタを予約する必要があります。これにより、そのレジスタから値が読み取られます。

高水準プログラミング言語からのクリーンなソリューションではありませんが、あなたは今アセンブル中であり、手を汚すこともできます!

于 2012-05-06T07:56:05.020 に答える