C++ - 32位保护模式
C++ - 32 bit Protected Mode
我正在开发一个操作系统内核,它将以 32 位C++编写。我需要弄清楚如何启用 32 位保护模式/启用 a20 门C++。那么,你能告诉我这是否可能,如果可能,如何?谢谢。
C 和 C++ 不知道"a20 门"是什么以及如何启用它。与"32 位保护模式"相同。这将需要通过特定的机器代码来完成。现在,正确的问题是如何从C++程序中调用此代码。根据编译器C++,可能有几种不同的方法可以做到这一点:
1)最简单的方法是使用asm
、__asm
或__asm__
块的嵌入式汇编代码。仔细阅读您的C++编译器文档,了解如何使用它。我不确定所有编译器都支持这一点。
2) 使用汇编程序使用汇编代码编写代码,以便可以从C++应用程序调用它。使用 extern "C"
在程序中声明函数C++以便可以调用它。
3)更讨厌的是:把你的汇编代码放到一个字节数组中,把数组的地址转换成一个指向函数的指针,然后调用它。对机器代码和 C/C++ 调用约定的大量了解是工作所必需的。
相关文章:
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 为什么在保护模式下继承升级不起作用
- 访问被拒绝后,c++中的故障保护代码
- 如何在全屏模式下(在OpenGL中)使背景透明
- C++:无法访问声明的受保护成员
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 此模式的C++RegEx
- 为什么您需要C++头文件的包含保护
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 使用可变模板的Broadcaster/Listener模式
- 如何使用 APM 从保护模式关闭
- 与 IE 保护模式兼容的自定义工具栏
- C++ - 32位保护模式
- 为什么GoF建议在C++模板方法模式实现中使用受保护的(而不是私有的)虚拟方法
- 链接内核后跳转到保护模式不工作
- RTOS: windows ce:实模式和保护模式内存访问开销
- 保护数据设计模式
- 告诉子类对超类的受保护变量执行某些操作是否是一种好的做法(也许是一些已知的设计模式?)?