切换到16位实模式和32位保护模式

时间:2018-02-27 19:06:27

标签: assembly operating-system nasm elf

我有兴趣用图形支持编写自己的微内核。但是,据我所知,没有中断{​​{1}}就无法更改图形模式,这需要实模式。如何在应用程序的运行时间切换实模式和保护模式?我在osdev.org上看过一篇文章,但由于我不熟悉汇编,我无法弄清楚如何实现这一点。

技术细节:

  • Ubuntu 16.04.4 LTS
  • GCC 7.3.0交叉编译器(i686-elf)
  • NASM 2.11.08汇编程序,但内联GAS风格的语法很好

1 个答案:

答案 0 :(得分:1)

您引用的页面有一个section,它描述了将CPU从受保护状态转换回实模式需要执行的操作。它甚至还有一个汇编代码片段。

要从实模式转换到保护模式,请使用英特尔在Intel SDM卷3A第9章中给出的建议。第9.10.2节给出了一个汇编代码示例,用于将CPU转换为保护模式。 / p>

那就是说,实际上你不一定要在实模式下使用INT 10h。 查看有关您问题的评论。