global loader align 4 MAGIC_NUMBER equ 0x1BADB002 FLAGS equ 0x0 CHECKSUM equ -MAGIC_NUMBER KERNEL_STACK_SIZE equ 4096 ; size of stack in bytes dd MAGIC_NUMBER dd FLAGS dd CHECKSUM loader: mov esp, kernel_stack; + KERNEL_STACK_SIZE ; ont ESP to the start of the stack (end of memory area) extern kmain call kmain ;mov eax, 0xCAFEBABE .loop: jmp .loop section .bss resb KERNEL_STACK_SIZE ; reserve stack for kernel kernel_stack: