如何设置堆栈段

时间:2012-04-30 23:20:08

标签: assembly

有人可以帮助理解如何为操作系统设置堆栈。

据我所知,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 

1 个答案:

答案 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

我认为我不得不把筹码放在那里。只要您不覆盖系统数据,就可以将它放在任何地方。