【发布时间】:2014-09-22 17:09:32
【问题描述】:
我正在开发一个简单的内核以及一个引导加载程序。在引导加载程序进入保护模式之前,我想使用中断来检索系统上的内存量(int 0x12),然后将标签保存的值设置为我检索到的内存量。一旦内核加载(在保护模式下)我想访问数据。
一开始打算使用如下结构:
; sysinfo.asm
RAM: dd 0 ; declare RAM as a 4 byte label
; boot.asm
%include "sysinfo.asm"
; bootloader code here
xor ax, ax
int 0x12
mov [RAM], ax
; go into protected mode and launch kernel
; kernel.asm
%include "sysinfo.asm"
mov ax, [RAM]
; print ax
然而正如我所料,由于 boot1.asm 中的 RAM 标签和 kernel.asm 中的 RAM 标签完全不同,它们指向的地址并不相同,我该怎么做呢?
【问题讨论】: