手続きを使ったMIPSコードを勉強しているのですが、スタック(sp)とフレームポインタ(fp)の目的がわかりません。
たとえば、私が研究しているコードには以下のものがあります。入力した数値の前のすべての数値 (例: 3.3,2,1,0) を出力し、使用したスタック サイズを示します。この例では 16 を使用しました。 を に変更した-4
ところ-8
、エラーが発生しました。ただし、を使用する他のコードに気付きました-8
。
問題は、何が欠けているのですか?
proc:
addi $sp,$sp,-4 #
sw $ra,0($sp) # push $ra