2012-04-30 98 views
0

能有人幫助瞭解如何設置堆棧的操作系統。如何設置堆棧段

據我瞭解,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

您還沒有表現出足夠的有意義的答案。你顯示的代碼只是向AX中加載一個值,然後向它添加另一個值。你在AX中獲得了一個值,但是根本沒有做任何事情來影響堆棧。你現在所擁有的就等於'mov ax,09eoh',只不過是。 –

回答

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 

我不認爲我必須把堆放在那裏。只要不覆蓋系統數據,您可以將它放在任何地方。

+0

我忘了把剩下的代碼,請在下面找到\t MOV AX,07C0h \t \t \t;設置的上述緩衝液的堆棧空間 \t附加斧4K,544 \t \t \t; 8k緩衝器= 512段+ 32段(裝載器) \t cli \t \t \t \t;更改堆棧時禁用中斷 \t mov ss,ax \t mov sp,4096 –

+0

換句話說,如何設置SS? –

+0

我已經告訴你如何設置SS。這裏又是:'mov ss,ax' –