22nd
x86 架构的实模式与保护模式的区别在于,在实模式下,CPU 的寻址方式为:直接从段寄存器中获取内存地址,称为「基址」,然后将基址左移 4 位(即乘以 16),再加上通用寄存器中的偏移量,就得到了它要访问的内存地址;而在保护模式下,CPU 的寻址方式为:段寄存器中的基址被放到了内存中某个地方,类似于一个表格,表格中的每一项是一个基址,叫做「段描述符」,段寄存器中保存的是在这个表格中的哪一项,称为「选择子」,CPU 先是从段寄存器中获取选择子,然后去内存中找到对应的基址,然后再用这个基址加上偏移量,才最终得到了它要访问的内存地址。
简单点来说,实模式是直接寻址,保护模式是间接寻址。
或许 x86 架构在设计实现上不如 ARM 或者 MIPS 优雅,但是就因为它推出的早,所以迅速占领了市场,再加上其完全向前兼容的优势(到现在为止,即使最新的 x86 CPU,一开始在电源打开处于实模式下,也能够运行针对先前任何芯片所撰写的软件),使得服务器和 PC 领域成为 x86 架构的天下。
Last updated
Was this helpful?