2

私は現在 MIPS を学んでおり、MIPS のグリーン シートで、呼び出し全体で保持される合計 12 個のレジスタ (s レジスタを含む) があることを見ました。これについての私の理解では、そのようなレジスタをすべてスタックし、後で再びアクセスしたいときにそれらを取得する必要があります。

しかし、私の質問は、これを行うのに問題があった場合、なぜこれらのレジスタをわざわざ使用するのですか? 使用するレジスタが不足する可能性以外に、これらのレジスタを使用するポイントはありますか?

4

1 に答える 1

8

MIPS アセンブリには、tレジスタが呼び出し元で保存され、sレジスタが呼び出し先で保存されることを指定する呼び出し規約があります。

これは、他の誰かの関数、たとえば私の関数を呼び出した場合s、関数が終了した後、関数内のレジスタが同じであることを保証できることを意味します。t私の関数が自由に上書きできるレジスタに対してこれを保証することはできません。

MIPS アセンブリを記述するときは、常にこの規則に従う必要があります。

于 2013-10-09T23:37:23.113 に答える