为什么寄存器$ v0被调用者保存?

时间:2017-09-28 18:54:01

标签: assembly mips cpu-registers mips32

我正在研究MIPS架构,我无法理解为什么寄存器$v0被调用者保存。

该寄存器是函数存储返回值的位置。呼叫者何时以及为何必须保存?愿有人成为一个好榜样吗?

1 个答案:

答案 0 :(得分:2)

由于它是保存返回值的寄存器,因此不能被callee-save。这会造成被调用者的情况

  • 必须更改寄存器,以便在其中返回值,并
  • 不允许更改它(暂时除外),因为它是被调用者保存。

所以这是来电保存。这并不意味着调用者必须保存它,它只是意味着如果调用者需要在调用中保持该值,然后它必须将其保存在其他地方。 / p>