如何理解易失性和非易失性寄存器?

时间:2015-08-14 04:11:41

标签: cpu-registers calling-convention volatility

通过调用对话可以将CPU寄存器分类为易失性和非易失性,单词volatile的含义如何暗示分类?

2 个答案:

答案 0 :(得分:6)

来自http://www.techopedia.com/definition/8591/non-volatile-register

易失性寄存器的内容可能会在子程序调用中发生变化。

非易失性寄存器是一种寄存器,其内容必须通过子程序调用保留。每当例程更改非易失性寄存器的值时,必须在更改寄存器之前将旧值保存在堆栈中,并且必须在返回之前恢复该值。寄存器类似于变量,除了有固定数量的寄存器。每个寄存器都是CPU中唯一保存单个值的位置。寄存器是唯一可以执行数学函数(例如加法,乘法,减法等)的地方。寄存器通常包含指向内存的指针。在存储器和寄存器之间移动值是一种常见的现象。

答案 1 :(得分:3)

换句话说,易失性寄存器是调用者保存的寄存器,而不是被调用者保存的寄存器。见https://msdn.microsoft.com/en-us/library/6t169e9c.aspx