Operating system CPU寄存器值是如何更新的?

Operating system CPU寄存器值是如何更新的?,operating-system,cpu-registers,Operating System,Cpu Registers,我知道这可能是一个愚蠢的问题,我问,但我真的很好奇,因为我没有太多的知识,计算机架构。 假设我有一个寄存器R1,并且假设我将变量的值(比如LOCK=5)加载到寄存器中,那么现在R1将值5存储在寄存器中,现在假设我在一段时间后将LOCK的值更新为10,那么寄存器的值仍然是5还是会被更新。当涉及到基于寄存器的CPU体系结构时,我认为矩阵中的Neo有一个有价值的结论:“没有变量。” 在高级编程语言中使用变量时,变量是一种抽象的东西,用于向编译器描述对特定数据段执行哪些操作。该数据可能驻留在系统内存中,

我知道这可能是一个愚蠢的问题,我问,但我真的很好奇,因为我没有太多的知识,计算机架构。
假设我有一个寄存器R1,并且假设我将变量的值(比如LOCK=5)加载到寄存器中,那么现在R1将值5存储在寄存器中,现在假设我在一段时间后将LOCK的值更新为10,那么寄存器的值仍然是5还是会被更新。

当涉及到基于寄存器的CPU体系结构时,我认为矩阵中的Neo有一个有价值的结论:“没有变量。”

在高级编程语言中使用变量时,变量是一种抽象的东西,用于向编译器描述对特定数据段执行哪些操作。该数据可能驻留在系统内存中,或者对于临时值,永远不会离开寄存器文件

然而,一旦程序被编译成二进制,就不再有变量了!出于调试目的,编译器可能会在代码中的这个特定位置,即现在称为变量“x”的地方,使用类似于“x”的信息对代码进行注释

我认为理解这一点的最好方法是编译一些非常简单的程序,并查看它们各自的汇编,看看它们是如何组合在一起的。这是一个非常有价值的工具