如何在不使用 BIOS 中断的情况下进入图形模式(模式 13h)?我的目标是 BIOS 中断不可用的 32 位保护模式。我在网上找到了一个教程,但它只给了我一些提示,比如 VGA 寄存器。
我想知道如何访问 VGA 寄存器?我在NASM中使用 x86 程序集。我知道如何使用 INT 13h/INT 10h BIOS 中断进入图形模式。
这将非常依赖于硬件。如果您将自己限制在与 VGA 兼容的适配器上,这是现实的,但如果您想支持所有视频硬件,则不是这样。但话又说回来,如果你是的话,你可能一开始就不会为 DOS 写东西。
对于 VGA,请在此处阅读。寄存器通过汇编程序的 IN/OUT 命令访问,读取它们。
这是示例代码的链接:http: //files.osdev.org/mirrors/geezer/osd/graphics/modes.c 但是,此代码无法在 Windows 或 linux 等操作系统中运行,因为它使用命令 inportb和 outportb 发出汇编器命令 inb 和 outb,它们在用户空间中被禁用。
顺便说一句 - user3340787 没有询问如何在 DOS 中进入图形模式,他询问了如何在没有 BIOS 的情况下做到这一点,他在编写操作系统时可能想要这样做