更改任何寄存器(DR,IR等)的值是否需要从用户模式切换到内核模式?

时间:2017-10-31 11:49:47

标签: operating-system kernel cpu-registers kernel-mode usermode

1)所以在我正在阅读的书中说,例如更改IR寄存器不需要从用户模式切换到内核模式,但我不明白,我怎么知道它是否需要切换?

2)还有其他寄存器,如DR,PSW,PC等,我怎么知道它是否需要切换?

3)最后一个问题是,本书在某些时候说的是:更改“内存管理寄存器”的值需要内核模式,但我甚至不知道这个寄存器是什么?!

1 个答案:

答案 0 :(得分:0)

在大多数系统中,可以将寄存器分为三组:

1)通用寄存器:这些寄存器可以随意更改过程。

2)进程定义寄存器:这些寄存器只能在内核模式下更改。这些寄存器通常包括处理器状态和定义进程地址空间的寄存器。请注意,可以通过指令在用户模式下更改处理器状态的值,但无法在用户模式下设置寄存器的值。

3)系统寄存器:这些是所有进程共享的寄存器。这些更改仅在内核模式下更改。例如,通常有一个寄存器定义中断向量的位置。

  

1)因此,在我正在阅读的书中,例如,更改IR寄存器不需要从用户模式切换到内核模式,但我不明白,

什么是“IR”寄存器。这通常被称为程序计数器(PC)吗?如果是这样,可以在用户模式下更改。

  

我怎么知道它是否需要切换?   和   2)还有其他寄存器,如DR,PSW,PC等,我怎么知道它是否需要切换?

您必须阅读处理器的手册。但是,如果它不是通用寄存器,则需要处于内核模式才能更改它。

如果您的寄存器是R0,R1,R2,....或者具有SP,BP,PC等别名,您可以在用户模式下更改。否则,假设它需要内核模式。

  

3)最后一个问题是,本书在某些时候说的是:更改“内存管理寄存器”的值需要内核模式,但我甚至不知道这个寄存器是什么?!

那些取决于您的处理器。