【发布时间】:2010-07-14 21:50:44
【问题描述】:
嘿,我对操作系统编写很感兴趣,我已经很长时间了,但仍然无法接受(我主要是“第一次阅读时你不明白的事情你根本不应该做” - 它适用于我所做的所有其他事情,比如 PHP、HTML、AS3.0、C++ ......等等)我刚刚有点明白了。问题是——真的,ASM 直到现在我才需要一个特定的引导加载程序(我知道还有其他的,比如 GRUB 之类的,但这只是一个漫长的故事)。
显然,最重要的部分是实际从磁盘读取一些内容到图像扇区并跳转到那里。但是,INT 0x13 与 AH 0x02,即。从磁盘读取扇区并没有真正工作(或者我只是不明白)。
所以,我找到了这个信息: Click
在对 Bochs 进行了一些研究后,我发现了扇区数、柱面数、磁头数以及有关磁盘的所有信息。
现在,为了测试它,我想读取第一个扇区,并从中打印出几个字符 - 因为我一开始就知道有这个引导加载程序,我会看到使用的部分消息。
但是,它只是……不起作用。 我正在尝试将缓冲区放到不同的地方,消息,不同的扇区... 谁能给我看一个这样读取指定点的例子吗?
谢谢。
【问题讨论】:
-
你在什么环境下运行这段代码?实模式DOS?
-
嗯...它是在 Bochs 环境中,刚刚启动。而且我还没有切换到受保护,所以,是的,它很可能是真实的。