【发布时间】:2013-02-12 14:47:21
【问题描述】:
我正在尝试开发一个简单的操作系统。我以前做过一些汇编程序,不得不使用INT 10h 在屏幕上显示字符。我了解 UEFI 支持旧版 BIOS,并且可能仍然可以使用INT 10h 服务。但是,如果我选择构建纯 UEFI 可启动操作系统,我应该避免使用INT 10h 吗?还是我看错了?
换句话说,向下钻取printf 到stdout(屏幕)是否最终调用了BIOS INT 10h?还是问题 - “SYS_WRITE 函数调用是否基于 INT 10h?”更合适?
我还需要创建一个 512 字节的引导扇区并将它们作为磁盘(或磁盘映像)上的第 0 个扇区吗? 0x7c00的位置还有意义吗?
【问题讨论】:
-
嗯,把 BIOS 和 UEFI 都搞砸了,至少在你别无选择之前。如果它是你想要的文本,你所要做的就是把它放在线性 0xB8000 又名实模式 0xB800x0x0000 并以 2 字节对打印,一个 ascii 一种颜色。
标签: operating-system boot bios osdev efi