bond/misc/legacy_bootloader/kernel/kernel.asm

37 lines
469 B
NASM

extern _KeSystemInit
extern _KeGDTPtr
extern _KeSwitchGDT
extern _KeIDTPtr
global _start
;GDT
SLCT_GRAPH equ 8
SLCT_FLAT_C equ 16
SLCT_FLAT_RW equ 24
;Stack
[section .bss]
[BITS 32]
resb 2 * 1024
KernelStackTop:
[section .text]
[BITS 32]
_start:
mov esp,KernelStackTop
sgdt [_KeGDTPtr]
call _KeSwitchGDT
lgdt [_KeGDTPtr]
jmp SLCT_FLAT_C:GDT_COMPLETE
GDT_COMPLETE:
mov ax,SLCT_GRAPH
mov gs,ax
mov ax,SLCT_FLAT_RW
mov ds,ax
mov ss,ax
push 0
popfd
call _KeSystemInit