在装配中进入图形模式而不中断

时间:2014-02-22 14:07:13

标签: assembly x86 interrupt bios vga

如何在不使用BIOS中断的情况下进入图形模式(模式13h)?我的目标是32位保护模式,其中BIOS中断不可用。我在网上找到了一个教程,但它只给了我一些提示,比如VGA寄存器。

我想知道如何访问VGA寄存器?我在 NASM 中使用x86程序集。我知道如何使用INT 13h / INT 10h BIOS中断进入图形模式。

2 个答案:

答案 0 :(得分:1)

这将取决于硬件。如果您将自己限制为与VGA兼容的适配器,那么这是现实的,但如果您想支持整个视频硬件,则不行。但话说回来,如果你是,你可能不会首先为DOS写作。

对于VGA,请阅读here。寄存器通过汇编器的IN / OUT命令访问,并在它们上面读取。

答案 1 :(得分:0)

这是一个带示例代码的链接: http://files.osdev.org/mirrors/geezer/osd/graphics/modes.c 这段代码在Windows或Linux等操作系统中不起作用,因为它使用命令inportb和outportb发出汇编命令inb和outb,这些命令在用户空间中被禁用。

顺便说一下 - user3340787没有询问如何在DOS下进入图形模式,他问如何在没有BIOS的情况下这样做,他在编写操作系统时可能想要这样做