区分CPU中的用户寄存器和控制寄存器。
用户寄存器可以被机器指令读写。用户寄存器分为数据寄存器和地址寄存器。
数据寄存器
这些寄存器保存数值数据,例如整数,在某些架构中,还保存浮点数、字符、小的位数组和其他数据。在低端CPU中,一个特殊的被称为累加器的寄存器隐式地用于许多操作。
地址寄存器
这些寄存器保存地址,指令使用它们间接访问主存。
一些处理器包含用于保存地址或数值的寄存器。在某些情况下,它用作索引寄存器,其值作为某个地址的偏移量添加。存在多种可能的寻址模式,用于指定操作数的有效地址。
堆栈指针用于管理运行时堆栈。它还管理由专用地址寄存器寻址的其他数据堆栈,参见堆栈机。
控制寄存器
它被称为处理器寄存器,它改变或控制CPU或系统中其他服务的通用行为。
控制寄存器执行的常见任务包括中断控制、切换寻址模式、分页控制和协处理器控制。
控制寄存器的类型
CR0 − 对于高端处理器,它长32位。如果我们采用长模式下的x64处理器,它和其他控制寄存器长64位。CR0具有各种控制标志,这些标志修改处理器的基本操作。
CR1 − 保留寄存器。当CPU试图访问它时,会抛出#UD异常。
CR2 − 它包含页错误线性地址(PFLA)。每当发生页错误时,程序试图访问的地址就会存储在CR2寄存器中。
CR3 − 当启用虚拟寻址时使用,CR3使处理器能够通过定位当前任务的页目录和页表来将线性地址转换为物理地址。
CR4 − 在保护模式下使用,用于控制虚拟-8086操作、启用I/O断点、页面大小扩展和机器检查异常。
CR5-7 − 保留寄存器,与CR1相同。
附加控制寄存器 - CR8,扩展功能启用寄存器(EFER),XCR0和XSS
广告