1)所以在我正在阅读的书中说,例如更改IR寄存器不需要从用户模式切换到内核模式,但我不明白,我怎么知道它是否需要切换?
2)还有其他寄存器,如DR,PSW,PC等,我怎么知道它是否需要切换?
3)最后一个问题是,本书在某些时候说的是:更改“内存管理寄存器”的值需要内核模式,但我甚至不知道这个寄存器是什么?!
答案 0 :(得分:0)
在大多数系统中,可以将寄存器分为三组:
1)通用寄存器:这些寄存器可以随意更改过程。
2)进程定义寄存器:这些寄存器只能在内核模式下更改。这些寄存器通常包括处理器状态和定义进程地址空间的寄存器。请注意,可以通过指令在用户模式下更改处理器状态的值,但无法在用户模式下设置寄存器的值。
3)系统寄存器:这些是所有进程共享的寄存器。这些更改仅在内核模式下更改。例如,通常有一个寄存器定义中断向量的位置。
1)因此,在我正在阅读的书中,例如,更改IR寄存器不需要从用户模式切换到内核模式,但我不明白,
什么是“IR”寄存器。这通常被称为程序计数器(PC)吗?如果是这样,可以在用户模式下更改。
我怎么知道它是否需要切换? 和 2)还有其他寄存器,如DR,PSW,PC等,我怎么知道它是否需要切换?
您必须阅读处理器的手册。但是,如果它不是通用寄存器,则需要处于内核模式才能更改它。
如果您的寄存器是R0,R1,R2,....或者具有SP,BP,PC等别名,您可以在用户模式下更改。否则,假设它需要内核模式。
3)最后一个问题是,本书在某些时候说的是:更改“内存管理寄存器”的值需要内核模式,但我甚至不知道这个寄存器是什么?!
那些取决于您的处理器。