前言
x86/x86_64 CPU 中提供了控制寄存器,来决定 CPU 的操作模式和当前执行任务的属性。这些寄存器在 32 位模式下是 32 bit,在 64 位模式中,控制寄存器扩展为 64 bit。
CPU 架构中共有 CR0、CR1、CR2、CR3、CR4、CR8 共 6 个控制寄存器。
一、CR0 寄存器
CR0 寄存器是 x86 架构中的一种控制寄存器,用于控制和配置处理器的操作模式和特性。CR0 寄存器中的位字段包含了各种系统和处理器状态的控制位,具体功能如下:
- PE:保护使能(Protection Enable),该位用于控制处理器的保护模式。
- 当 PE = 1 时,处理器运行在保护模式下,可以使用内存保护等功能。
- 当 PE = 0时,处理器运行在实模式下。
- MP:监视协处理器(Monitor Coprocessor),该位用于控制对协处理器的监控。
- 当 MP = 1 时,处理器监视协处理器的使用情况,当发生对协处理器的操作时,会触发异常。
- 当 MP = 0 时,处理器不监视协处理器。
- EM:模拟(Emulation),该位用于控制协处理器的模拟。
- 当 EM = 1 时,处理器不支持协处理器指令,会将协处理器指令转为软件模拟执行。
- 当 EM = 0 时,处理器支持协处理器指令。