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

发布于 2024-07-05 10:22:51 字数 134 浏览 9 评论 0原文

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

有人知道如何在不删除 grub 的情况下回到实模式吗?

I've been working on a toy OS and have been using grub as my boot loader. Recently when trying to use VGA I found that I couldn't use hardware interrupts. This I found was because I had been slung into protected mode by grub.

Does anybody know how to get back into real mode without having to get rid of grub?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

や莫失莫忘 2024-07-12 10:22:52

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

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

If you are using GRUB as your boot loader you could use the intcall (as specified in the COMBOOT API) to call BIOS function int 0x10 in your case to access the VESA VBE.

But this will not help if you need to access the VGA hardware registers.

我做我的改变 2024-07-12 10:22:52

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

>mov 03c9,AH
>out value,AL

或类似的 INTEL asm(NASM)

3c9
3c8
IIRC 是 VGA 寄存器。

you mean writeport(value,$3c9)?

>mov 03c9,AH
>out value,AL

or similar in INTEL asm(NASM)

3c9
3c8
IIRC are VGA registers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文