奥普瓯江 发表于 2019-3-13 11:38:09

检测点13.2

本帖最后由 奥普瓯江 于 2019-3-13 11:38 编辑

(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。

答:不可以改变FFFF:0处的命令

关于BIOS的入口地址0xFFFF0的介绍
有网友问“BIOS程序是由0xFFFF0来执行的”该怎么理解呢?开机时内存中不是什么都没有,其实BIOS程序的入口地址恰恰就是0xFFFF0 !也就是说,BIOS程序的第一条指令就设计在这个位置上,下面小编就带来关于BIOS的入口地址0xFFFF0的介绍,一起来看看吧
一直都说开机加电之后,将CS设置为0xFFFF,IP设置为0x0000,这样组成的地址就是0xFFFF0,而这个就是BIOS的入口地址,之后CPU读取这个地址的代码,然后就巴拉巴拉的开始执行下去了。
现在想知道这个地址0xFFFF0是在主板上呢,还是在内存上。想着如果是统一编址的话,就可能是去读取主板上的ROM,但是看书上的图,有像是在RAM中,如果是在 内存 中,那是什么时候,由哪段程序将ROM中的程序读取到内存中的。自己猜的话,应该这个过程是固定的硬件实现的,将ROM中的所有内容拷贝到内存中最高位那一段中,之后,0xFFFF0就必然是指内存中的地址了。
百度了一下,有篇文章就是说这个的。
640KB~1MB上位内存(这个区域的地址分配给ROM,相应的384KB的RAM被屏蔽掉。所谓的影子内存技术,就是把ROM内容读取到对应地址的RAM中,以后系统就从RAM中读取数据,而不是从原来的ROM读取数据,从而提高速度。)1MB~扩展内存注:
ShadowRAM也称为"影子内存",是为了提高计算机系统效率而采用的一种专门技术,所使用的物理芯片仍然是CMOS DRAM(动态随机存取存储器,参阅本书后面的内容)芯片。Shadow RAM占据了系统主存的一部分地址空间。其编址范围为C0000~FFFFF,即为1MB主存中的768KB~1024KB区域。这个区域通常也称为内存 保留区,用户程序不能直接访问。ShadowRAM的功能就是是用来存放各种ROM BIOS的内容。也就是复制的ROM BIOS内容,因而又它称为ROM Shadow,这与Shadow RAM的意思一样,指得是ROM BIOS的"影子"。现在的计算机系统,只要一加电开机,BIOS信息就会被装载到Shadow RAM中的指定区域里。由于Shadow RAM的物理编址与对应的ROM相同,所以当需要访问BIOS时,只需访问Shadow RAM而不必再访问ROM,这就能大大加快计算机系统的运算时间。通常访问ROM的时间在200ns左右,访问DRAM的时间小于100ns、60ns, 甚至更短。
在计算机系统运行期间,读取BIOS中的数据或调用BIOS中的程序模块的操作将是相当频繁的,采用了Shadow RAM技术后,无疑大大提高了工作效率。

386之前与386之后,这个地址是不同的,但都在系统内存的最高 地址段。在386下为 FFFFFFF0H。因为CS段是16位的,EIP是32位的,为了得到一个32位地址,386给CS段增加了几个字段,这是隐藏的字段,系统可以通过 GDT,IDT将更改段选择子的字段,此时地址转换就不是 段地址左移4位 + 偏移地址,而是CS的Base字段+偏移地址。

本文章作者为:大米一键重装系统转载地址:http://www.damixitong.com/jiaocheng/bios/2017/1008/1794.html



(2)int 19h 中断例程,可以由DOS提供

答:不可以由DOS提供因为调用 int 19h这个命令是在DOS之前,所以不能由DOS提供

dota小波 发表于 2019-4-7 12:56:46

学习学习
页: [1]
查看完整版本: 检测点13.2