作者:聆听最遥远的歌声 | 来源:互联网 | 2023-01-28 17:33
从i386 CPU开始,英特尔处理器具有公开的控制寄存器,允许内核配置处理器并指定当前正在执行的任务/进程/线程的特征.根据英特尔系统编程手册(第2-13节),CR1
控制寄存器为"保留".也就是说,内核操作控制寄存器会CR1
导致未定义的行为.正如文章指出,也有CR2, CR3, CR4
和CR8
控制寄存器,虽然他们都没有保留.
为什么CR1
保留?奇怪的是,英特尔会引入一个保留的控制寄存器,然后开始添加非保留的控制寄存器,而不是简单地添加功能,CR1
因为这样做不会导致任何向后兼容性中断(这是保留它的全部要点).http://www.pagetable.com/?p=364推测CR1
保留了第二个可用于架构配置的寄存器,但正如文章中提到的那样,CR4
在i486推出时使用了.