为什么寄存器 $v0 被调用者保存?
Why the register $v0 is caller saved?
我正在研究 MIPS 体系结构,我不明白为什么寄存器 $v0
被调用者保存。
该寄存器是函数存储 return 值的地方。调用者何时以及为什么必须保存它?有人可以举个例子吗?
因为它是保存 return 值的寄存器,所以它不能被调用者保存。那会造成被叫方都
- 必须更改寄存器,以便return其中的值,并且
- 不允许更改它(临时除外),因为它是被调用者保存的。
所以这是来电保存。这并不意味着调用者必须保存它,它只是意味着 if 调用者需要在整个调用中保留该值,then 它必须将其保存在其他地方。
我正在研究 MIPS 体系结构,我不明白为什么寄存器 $v0
被调用者保存。
该寄存器是函数存储 return 值的地方。调用者何时以及为什么必须保存它?有人可以举个例子吗?
因为它是保存 return 值的寄存器,所以它不能被调用者保存。那会造成被叫方都
- 必须更改寄存器,以便return其中的值,并且
- 不允许更改它(临时除外),因为它是被调用者保存的。
所以这是来电保存。这并不意味着调用者必须保存它,它只是意味着 if 调用者需要在整个调用中保留该值,then 它必须将其保存在其他地方。