我有一个简单的内核以及一个引导加载程序。在引导装载程序进入保护模式之前,我想使用中断来检索系统内存量(int 0x12),然后将标签保存的值设置为检索到的内存量。一旦内核加载(处于保护模式),我想访问数据。x86在不包含文件的情况下访问标签
起初打算用以下结构:
; 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标签是完全不同的,他们不指向同一个地址,我怎么能这样做?