当前位置:鱼C工作室 >Win32汇编 > 查看文章

Win32基础知识2 – Win32汇编语言003

Win32基础知识2

 

让编程改变世界

Change the world by program


 

实模式

 

处理器被复位或者加电的时候以实模式启动。

这时候处理器中各寄存器以实模式的初始化值工作。

80386处理器在实模式下的存储器寻址方式和8086是一样的,由段寄存器的内容乘以 16当做基地址,加上段内的偏移地址形成最终的物理地址,这时候它的32位地址线只使用了低20位。

 

在实模式下,80386处理器不能对内存进行分页管理,所以指令寻址的地址就是内存中实际的物理地址。在实模式下,所有的段都是可以读、写和执行的。

实模式下80386不支持优先级,所有的指令相当于工作在特权级(优先级0),所以它可以执行所有特权指令,包括读写控制寄存器CR0等。

实际上,80386就是通过在实模式下初始化控制寄存器,GDTR,LDTR,IDTR与TR等管理寄存器以及页表,然后再通过加载CR0使其中的保护模式使能位置位而进入保护模式的。

 

当然,实模式下不支持硬件上的多任务切换。

实模式下的中断处理方式和8086处理器相同,也用中断向量表来定位中断服务程序地址。

中断向量表的结构也和8086处理器一样:每4个字节组成一个中断向量,其中包括两个字节的段地址和两个字节的偏移地址。

 

从编程的角度看,除了可以访问80386新增的一些寄存器外,实模式的80386处理器和8086有什么进步呢?

其实最大的好处是可以使用80386的32 位寄存器,用32位的寄存器进行编程可以使计算程序更加简捷,加快了执行速度。

 

比如在8086时代用16位寄存器来完成32位的乘法和除法时,要进行的步骤实在是太多了,现在用32位寄存器一条指令就可以完成。

80386中增加的两个辅助段寄存器FS和GS在实模式下也可以使用,这样,同时可以访问的段达到了6个而不必考虑重新装入的问题。

最后,很多80386的新增指令也使一些原来不很方便的操作得以简化。

 

保护模式

 

当 80386工作在保护模式下的时候,它的所有功能都是可用的。这时80386所有的32根地址线都可供寻址,物理寻址空间高达4GB。

在保护模式下,支持内存分页机制,提供了对虚拟内存的良好支持。

 

虽然与8086可寻址的1 MB物理地址空间相比,80386可寻址的物理地址空间可谓很大,但实际的微机系统不可能安装如此大的物理内存。

所以,为了运行大型程序和真正实现多任务,虚拟内存是一种必需的技术。

 

保护模式下80386支持多任务,可以依靠硬件仅在一条指令中实现任务切换。任务环境的保护工作是由处理器自动完成的。

在保护模式下,80386处理器还支持优先级机制,不同的程序可以运行在不同的优先级上。

优先级一共分0~3 共 4个级别,操作系统运行在最高的优先级0上,应用程序则运行在比较低的级别上。

 

配合良好的检查机制后,既可以在任务间实现数据的安全共享也可以很好地隔离各个任务。

从实模式切换到保护模式是通过修改控制寄存器CR0的控制位PE(位0)来实现的。

 

在这之前还需要建立保护模式必需的一些数据表,如全局描述符表GDT和中断描述符表IDT等。

DOS操作系统运行于实模式下,而Windows操作系统运行于保护模式下。

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.