CPU registers can be classified as volatile and non-volatile by calling convension, how does does the meaning of word volatile implies the classification?
8955 次
2 回答
10
来自http://www.techopedia.com/definition/8591/non-volatile-register
易失性寄存器的内容可能会随着子程序调用而改变。
非易失性寄存器是一种寄存器,其内容必须在子程序调用中保留。每当例程更改非易失性寄存器的值时,必须在更改寄存器之前将旧值保存在堆栈中,并且必须在返回之前恢复该值。寄存器类似于变量,只是寄存器的数量是固定的。每个寄存器都是 CPU 中保存单个值的唯一位置。寄存器是唯一一个可以执行加法、乘法、减法等数学函数的地方。寄存器通常保存指向内存的指针。在内存和寄存器之间移动值是一种常见现象。
于 2015-08-14T04:28:02.653 回答
5
换句话说,易失性寄存器是调用者保存的寄存器,而不是被调用者保存的寄存器。请参阅https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=vs-2019#callercallee-saved-registers
于 2017-04-09T04:14:44.833 回答