80x86保护模式


请教: 
1、何为实地址方式? 
2、何为保护方式? 
3、二者的区别是什么?(能否详细) 
4、什么是虚拟地址? 
5、什么是映射? 
6、何为浮点数? 

回答: 

如果你想详细地搞清以上问题,建议你去阅读有关386、486或Pentium汇编的书(8086/8088的汇编的书一般没有保护方式、虚拟地址、浮点数等概念),一般都会有专门的部分来讨论这些问题,因为要想准确地知道这些问题,还真需要花一些工夫。 
这里简单地解释一下,8086/8088的微机只有一种工作模式(即实模式)只能处理1M以下的地址(16位),这种地址被城为实地址。后来Intel为了突破1M的内存的限制,推出了386等芯片,增加了保护模式,在32位保护模式下,程序可以访问4G内存空间。但同时为了同以前的程序保持兼容,所以旧程序在实模式下运行,而32位程序可以运行在保护模式下,从而最大地发挥服务器的能力。DOS是运行在实模式的,而Windows 9x/NT都是运行在保护模式的。CPU有专门的保护模式指令。这里有一篇简介386mode.zip。 
Intel的32位处理器可以允许操作系统建立自己的内存管理机制,这样每个应用程序不是直接读写实际存在的物理内存,而是访问操作系统提供的虚拟内存,这样的优点是程序可以使用硬盘等其他设备的空间模拟内存,而且在实际软件时可以不考虑用户实际拥有的物理内存的。Windows就采用了这样的内存管理机制,所以你的程序操作的不是实际的物理地址,而是操作系统提供的虚拟地址。由物理地址到虚拟地址,存在着对应关系,即映射。不同的操作系统的管理方法可能不同。 
浮点数是表示小数的一种方法。所谓浮点就是小数点的位置不固定,与此相反有定点数,即小数点的位置固定。整数可以看做是一种特殊的定点数,即小数点在末尾。8086/8088中没有浮点数处理指令,不过从486起,CPU内置了浮点数处理器,可以执行浮点运算。一般的浮点数有点象科学计数法,包括符号位、指数部分和尾数部分。 

Zhang RenJian的意见: 
实际上80x86有一个叫做80x87的协处理器,用于处理浮点运算。同理:80286,80386有80x287,80x387协处理器。(主持人注:8086-386的用户多数都不购买协处理器,而多数使用软件来模拟协处理器的指令。)

你可能感兴趣的:(模式)