各位高手,小弟请教一个问题。。。
时间:2004-09-09
来源:互联网
1、据我所知,在计算机复位后,CPU会在 FFFFO:0000 处执行第一条指令。书上说这是BIOS的入口。我想知道,既然这是BIOS的入口地址,那么是不是就是说从这开始有一段地址空间是分配在ROM-BIOS上,而在内存RAM上却留下相应的一段空洞,不能访问RAM上的这一段存储区?如果那位知道的话,麻烦请你告诉我。顺便详细的说一下ROM-BIOS和RAM的地址是怎样分配的?
2、大家都知道,LINUX是支持页式内存管理的,但是却绕过了段式内存管理。我记得有一本书说这也是GCC的一个特性,也就是说GCC不支持分段的内存管理。大家都知道,TURBO C也能编译C程序。但是据我所知,它是支持分段的。我想知道,如果我想写一个象LINXU一样的支持页式内存管理,却绕过INTEL的段式内存管理,能不能用TURBO C写。
3、TURBO C能不能在保护模式下编译C程序,也就是说它能不能用到EAX、EBX、……、CR0、CR1……、GDTR、LDTR、TR等寄存器?
2、大家都知道,LINUX是支持页式内存管理的,但是却绕过了段式内存管理。我记得有一本书说这也是GCC的一个特性,也就是说GCC不支持分段的内存管理。大家都知道,TURBO C也能编译C程序。但是据我所知,它是支持分段的。我想知道,如果我想写一个象LINXU一样的支持页式内存管理,却绕过INTEL的段式内存管理,能不能用TURBO C写。
3、TURBO C能不能在保护模式下编译C程序,也就是说它能不能用到EAX、EBX、……、CR0、CR1……、GDTR、LDTR、TR等寄存器?
作者: cxh_nuaa_2001 发布时间: 2004-09-09
1.根据IBM开机协议,开机时从CMOS ROM上把BIOS数据拷贝到RAM的前64KB区域。实模式程序可以访问这块区域。
2.不要把一些过时的咚咚和先进事物纠缠起来!
Turbo C是十年前的产品了,它的主打平台就是实模式DOS!且不要说它是否能开发如Linux般的先进功能,就算是它的依附平台DOS就早已经是昨日黄花了!
我们能仅用双足走路到月球吗?不言而喻。
2.不要把一些过时的咚咚和先进事物纠缠起来!
Turbo C是十年前的产品了,它的主打平台就是实模式DOS!且不要说它是否能开发如Linux般的先进功能,就算是它的依附平台DOS就早已经是昨日黄花了!
我们能仅用双足走路到月球吗?不言而喻。
作者: home_king 发布时间: 2004-09-09
楼上的大哥教训的是。
不过我还有些东西不明白。开机后内存都是清零的,然而要执行程序,或者说第一条指令,这条指令必须在ROM中。大家都知道这就是ROM-BIOS。所以CPU开始执行指令的那个地址也就必须在ROM上,而不在RAM上,对不对?某些书还说了从640KB--->1024KB的区域就是保留给ROM-BIOS、EGA/VGA等用的。所以这段区域,至少是这段区域的部分地址空间应该是在ROM上的,对不对?既然是在ROM上,那么这段地址空间的访问就不能象访问RAM那样了。这段地址空间就要特殊对待,因为ROM和RAM毕竟不同。我上面的理解不知对不对,还清高手指正。
还有,楼上的大哥说实模式可以访问这块区域。那么我想知道,在保护模式下,能不能把线形地址映射到这块区域呢?
不过我还有些东西不明白。开机后内存都是清零的,然而要执行程序,或者说第一条指令,这条指令必须在ROM中。大家都知道这就是ROM-BIOS。所以CPU开始执行指令的那个地址也就必须在ROM上,而不在RAM上,对不对?某些书还说了从640KB--->1024KB的区域就是保留给ROM-BIOS、EGA/VGA等用的。所以这段区域,至少是这段区域的部分地址空间应该是在ROM上的,对不对?既然是在ROM上,那么这段地址空间的访问就不能象访问RAM那样了。这段地址空间就要特殊对待,因为ROM和RAM毕竟不同。我上面的理解不知对不对,还清高手指正。
还有,楼上的大哥说实模式可以访问这块区域。那么我想知道,在保护模式下,能不能把线形地址映射到这块区域呢?
作者: cxh_nuaa_2001 发布时间: 2004-09-10
对于i386体系结构来说,事实上第一条指令的位置是在0xFFFFFFF0处,这是由RST后的CPU状态(EIP的值)决定的,这里一般是一条跳转指令。执行完这条JMP指令后,CPU真正进入实模式,即用CS:IP方式取指。
对于BIOS中的地址映,据我了解,系统会把BIOS中的ROM直接用硬件同时映射到地址空间:0x000A0000~0x000FFFFF以及0xFFFA0000~0xFFFFFFFF。即第一条JMP指令取自地址空间0xFFFFFFF0,JMP以后取自0x000A0000~0x000FFFFF。
不当之处,请多指正。
对于BIOS中的地址映,据我了解,系统会把BIOS中的ROM直接用硬件同时映射到地址空间:0x000A0000~0x000FFFFF以及0xFFFA0000~0xFFFFFFFF。即第一条JMP指令取自地址空间0xFFFFFFF0,JMP以后取自0x000A0000~0x000FFFFF。
不当之处,请多指正。
作者: seeker007 发布时间: 2004-09-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28