发布网友
共2个回答
热心网友
保护模式同实模式的根本区别是进程内存受保护与否。可寻址空间的区别只是这一原因的果。实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序没有区别对待,而且每一个指针都是指向"实在"的物理地址。这样一来,用户程序的一个指针如果指向了系统程序区域或其他用户程序区域,并改变了值,那么对于这个被修改的系统程序或用户程序,其后果就很可能是灾难性的。为了克服这种低劣的内存管理方式,处理器厂商开发出保护模式。这样,物理内存地址不能直接被程序访问,程序内部的地址(虚拟地址)要由操作系统转化为物理地址去访问,程序对此一无所知。
从8086的16位到80386的32位处理器,这看起来是处理器位数的变化,但实质上是处理器体系结构的变化,从寻址方式上说,就是从“实模式”到“保护模式”的变化。
实模式是指寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,寻址时将段寄存器的值左移4位加上偏移地址,得到1MB空间内的地址。它是CPU启动的时候的模式,这时候就相当于一个速度超快的8086。
而保护模式,因为要做到与之前的机器兼容,段寄存器还是16位,地址总线增加,为了能寻址更多的空间,就不能把段寄存器的内容当成实模式下的那种用法,它的值会被当成一个索引,用来在描述符表中找相应的段描述符,进而找到段基址,从而能寻址更大的地址范围。
热心网友
实地址模式是与8086/8088兼容的存储管理模式。当80386加电或复位后,就进入实地址工作模式。物理地址形成与8088/8086一样,是将段寄存器内容左移4位与有效偏移地址相加而得到,寻址空间为1MB。 保护地址模式又称为虚拟地址存储管理方式。在保护模式下,80386提供了存储管理和硬件辅助的保护机构,还增加了支持多任务操作系统的特别优化的指令。保护模式采用多级地址映射的方法,把逻辑地址映射到物理存储空间中。这个逻辑地址空间也称为虚拟地址空间,80386的逻辑地址空间提供2^46的寻址能力。物理存储空间由内存和外存构成,它们在80386保护地址模式和操作系统的支持下为用户提供了均匀一致的物理存储能力。在保护模式下,用段寄存器的内容作为选择符(段描述符表的索引),选择符的高13位为偏移量,CPU的GDTR中的内容作为基地址,从段描述符表中取出相应的段描述符(包括32位段基地址、段界限和访问权等)。该描述符被存人描述符寄存器中。描述符中的段基地址(32位)与指令给出的32位偏移地址相加得到线性地址,再通过分页机构进行变换,最后得到物理地址。