R3000
例えば、$s-レジスタをルーチン内で使うときは、その内容をスタックに一時的に退避させなければならない。$sp と $fp はルーチンに入ってきたときにセーブされ、それぞれルーチン固有の固定値でインクリメントされる。そして、そのルーチンから戻るときに元の値に戻す。一方 $ra は jal 命令でルーチンに飛び込むときに自動的に変更される。$t-レジスタはサブルーチンを呼び出すと内容が破壊されるので、必要なら呼び出す側がセーブしておかなければならない。$at はアセンブラの仮想命令(マクロ命令)で一時変数として使われる。$t-レジスタだけを使って、サブルーチンを呼び出すことがないルーチンは、スタックにレジスタをセーブする必要がないため、$sp や $fp もセーブする必要がない。