0

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

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

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

4

1 回答 1

0

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

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

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

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

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

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

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

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

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

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

这些取决于您的处理器。

于 2017-11-01T14:26:05.010 回答