MIPS寄存器保存

Eda*_*aur 1 mips preserve

所以我现在正在学习MIPS,我在MIPS绿板上看到,总共有12个寄存器(包括s寄存器)在调用中保留.在我对此的理解中,必须堆叠所有这些寄存器并在我们想要再次访问它们时检索它们.

不过我的问题是,如果遇到这个麻烦,为什么还要使用这些寄存器呢?是否有可能使用这些寄存器而不是可能耗尽寄存器?

Kon*_*ach 7

MIPS程序集有一个调用约定,它指定t寄存器是被调用者保存的,s寄存器是调用者保存的.

这意味着如果你打电话给别人的功能,比如我的话,你可以保证s我的功能编辑后你的功能中的寄存器是相同的.您无法对t寄存器进行保护,我的函数可以自由覆盖.

编写MIPS程序集时,应始终遵循此约定.

  • 关闭。除了您可以在函数中编辑“s”寄存器之外,您只需保存和恢复这些值,以便它们看起来没有更改。 (2认同)