关于 x86:Grub 和进入实模式(低级汇编语言编程)

关于 x86:Grub 和进入实模式(低级汇编语言编程)

Grub and getting into Real Mode (low-level assembly language programming)

我一直在开发一个玩具操作系统,并且一直使用 grub 作为我的引导加载程序。最近在尝试使用VGA时,我发现我无法使用硬件中断。我发现这是因为我被 grub 置于保护模式。

有没有人知道如何在不必摆脱 grub 的情况下回到实模式?


你的意思是 writeport(value,$3c9)?

1
2
mov 03c9,AH
out value,AL

或类似 INTEL asm(NASM)

3c9
3c8
IIRC 是 VGA 寄存器。


如果您使用 GRUB 作为引导加载程序,您可以使用 intcall(在 COMBOOT API 中指定)在您的情况下调用 BIOS 函数 int 0x10 以访问 VESA VBE。

但如果您需要访问 VGA 硬件寄存器,这将无济于事。


推荐阅读