【问题标题】:Linux kernel operating system registersLinux内核操作系统寄存器
【发布时间】:2012-04-24 16:57:44
【问题描述】:

寄存器(如 eax、ebx、ecx、edx、esp、ebp 等)是否在处理器中物理可用,或者从编程的角度来看它们是虚拟内存位置?

【问题讨论】:

  • 你想用这些寄存器做什么?这些是真实的,不在记忆中。您需要编写一些汇编程序来直接访问寄存器

标签: linux cpu-registers


【解决方案1】:

它们非常实际地存在于英特尔 CPU 中。 Linux 在这些 CPU 之上运行。

【讨论】:

    【解决方案2】:

    您指定的寄存器在英特尔处理器上都是物理可用的,而不是虚拟内存。虚拟内存的概念在这里并不适用。

    【讨论】:

      【解决方案3】:

      它们在处理器中可用。根据处理器的不同,您可能有额外的寄存器,或者比您指定的寄存器更少。

      Wikipedia "Processor register":

      在计算机体系结构中,处理器寄存器是作为 CPU 或其他数字处理器的一部分可用的少量存储空间。此类寄存器(通常)由主存储器以外的机制寻址,并且可以更快地访问。几乎所有的计算机,无论是否加载存储架构,都将数据从更大的内存加载到寄存器中,并通过某些机器指令用于算术、操作或测试。

      【讨论】:

        【解决方案4】:

        寄存器是指定的硬件平台。 Eax、ebx 或其他任何类似 rax、rbx 的东西都是 x86 寄存器 它们确实存在于我们的计算机中,并且物理上可用 在 x86 中寄存器不映射到内存中

        【讨论】:

          【解决方案5】:

          寄存器是物理的,它们是机器架构的一部分,而不是操作系统或任何其他软件的一部分。由于register renaming,它们可能在芯片上没有一个对应的硅片,但从任何软件(包括操作系统)的角度来看,它们是硬件的一部分,与内存地址不同。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-06
            • 2012-03-02
            • 2016-10-21
            • 1970-01-01
            • 2014-05-22
            相关资源
            最近更新 更多