assembly - 在实模式下访问 4GB RAM

标签 assembly x86 real-mode

是否可以通过启用 A20 在实模式下使用 4GB 内存,而无需切换到保护模式,并且不会丢失 BIOS 中断?

最佳答案

您可以使用虚幻模式来完成此操作。此模式使用限制为 4 GB 的选择器加载一个或多个段寄存器。该模式有两种形式,大虚幻模式和巨大虚幻模式。前者允许访问1MB以上的数据,后者允许1MB以上的代码和数据。不过,巨大的虚幻模式很难设置,因为实模式中断仅保留 EIP 的低 16 位。请参阅this page了解更多信息。

如果可能的话,您可能还想从 BIOS 获取内存映射,因为某些内存是映射到某些硬件的内存,并且不能用作普通内存。请参阅this page了解更多信息。

关于assembly - 在实模式下访问 4GB RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807155/

相关文章:

c - 链接到目录后执行程序时崩溃

c - 如何正确链接 16 位和 32 位 .o 文件?

xcode - Mac 上的 x86 汇编

assembly - 在不同处理器(x86程序集)上运行代码

performance - 如何解释两个处理器之间巨大的执行速度差异?

assembly - 16位汇编代码中的OFFSET是什么意思?

c - 通过计算汇编指令来测量 CPU 速度

linux - 组装-为什么打印顺序是相反的?

c++ - G++ 生成逻辑错误的汇编代码

x86 - 是否可以在实模式下启用分页?