80386控制寄存器与任务状态段在保护方式下的作用

需积分: 16 0 下载量 95 浏览量 更新于2024-08-25 收藏 499KB PPT 举报
"任务状态段-控制寄存器和系统地址寄存器" 在计算机系统中,任务状态段(Task State Segment, TSS)是至关重要的组成部分,它存储了一个任务的关键信息,如寄存器状态、堆栈指针等。TSS通过任务状态段描述符(Task State Segment Descriptor, TSD)在内存中被描述,而任务状态段寄存器(Task Register, TR)则包含了当前任务的TSD选择子。TR的高速缓冲寄存器部分则包含TSS的段基地址和段界限,这些信息对于任务切换和上下文管理是必不可少的。 80386微处理器引入了控制寄存器和系统地址寄存器来实现更高级别的管理和控制功能。控制寄存器,包括CR0、CR1、CR2和CR3,其中CR1在80386中是保留的,不供当前使用。CR0是最重要的控制寄存器,它包含了处理器的工作模式设定、分页管理以及浮点协处理器控制等关键位。其中,位0(PE)标志着处理器是否运行在保护模式,位31(PG)则控制分页管理机制的启用或禁用。 - PE位:如果PE=0,处理器工作在实模式,不支持保护机制;若PE=1,处理器进入保护模式,提供内存保护和任务切换等功能。 - PG位:PG位用于控制分页管理。当PG=0时,分页功能被禁用,线性地址直接映射到物理地址;若PG=1,分页机制启用,线性地址需要经过页表转换才能得到实际的物理地址。 控制寄存器CR2和CR3在分页管理中起到核心作用。CR2保存了发生页错误时的线性地址,而CR3则存储了页目录表的物理页号,它是处理器进行线性地址到物理地址转换的关键依据。 在不同的PE和PG组合下,处理器可以运行在不同的工作模式。虽然理论上PE和PG可以独立设置,但由于分页只能在保护模式下启用,所以PE=0且PG=1的组合是无效的,会导致通用保护异常。有效的模式组合有:PE=0且PG=0(实模式,无分页),PE=1且PG=0(保护模式,无分页),以及PE=1且PG=1(保护模式,有分页)。 启用或禁用PG位会直接影响系统的分页机制,因此在改变这个位时必须确保所有相关的程序和数据都适应新的地址转换规则,否则可能会引发错误或异常。分页机制的启用增强了内存管理的灵活性,允许虚拟地址空间的创建和隔离,同时也有助于内存保护和交换机制的实现。