有人可以帮助理解如何为操作系统设置堆栈。
据我所知,SS将由“程序员”设置为1024(1k)并将SP移动到它的顶部,这是正确的吗?
我在MikeOS教程中找到了以下内容,不确定如何添加544到07c0将添加4k缓冲区
bootloader_start:
mov ax, 07C0h ; Set up 4K of stack space above buffer
add ax, 544 ; 8k buffer = 512 paragraphs + 32 paragraphs
答案 0 :(得分:1)
这是我用来设置堆栈段的代码。
; NASM syntax
xor ax, ax ; or set ax to whatever segment you wish
mov ss, ax ; IIRC, you can't just go mov ss, 0
mov sp, 0xF000 ; or set sp to whatever you wish
我认为我不得不把筹码放在那里。只要您不覆盖系统数据,就可以将它放在任何地方。