​不管是硬盘还是软盘,硬件人员已经将其中的第一个扇区作为了引导扇区(Boot Sector),这是约定俗成的,我们没必要深究。我们继续讨论引导扇区的作用,当计算机上电时,它先会完成自身的加电自检(POST),然后BIOS去寻找存储介质,在盘上寻找引导扇区,如果该引导扇区上的结尾是0xAA55的话,计算机就认为这是一个正确的引导扇区。还有,一个扇区大小是512字节,所以这个引导扇区的0xAA55超过扇区边界结尾的话,它的大小将超过512B,则它也不是一个正确的引导扇区。

​ 好了,一旦BIOS发现了一个正确的引导扇区,它就会将这512B的内容装载到内存的0000:7c00处,然后跳转到0000:7c00处将控制权完全交给这段代码。到此为止,计算机将不再由BIOS控制,而由引导扇区中代码控制。

​ 就是如此,而我们(软件开发人员)知道了上面这一点,只需要编写一段代码将其编译成机器能执行的二进制程序,然后将其写入到软盘或者硬盘的引导扇区中,并将该介质设置为启动盘,那么计算机加电启动时就会自动去执行这一段代码,这样我们的计算就从什么都没有到屏幕上的一行行输出,都是我们代码去控制的了。
Flyanx的内存分布图(1).png

绿色区域:使用的空闲内存区域。

蓝色区域:计算机使用且不可覆盖区域。

黄色区域:计算机使用但可覆盖区域。

我们使用dd工具制作一个1.44MB的虚拟软盘

"dd if=/dev/zero of=软盘名称.img bs=512 count=2880"

标签: none

添加新评论