boot.asm (569B)
1 bits 32 2 3 MB_ALIGN equ 1 << 0 4 MB_MEMINFO equ 1 << 1 5 MB_FLAGS equ MB_ALIGN | MB_MEMINFO 6 MB_MAGIC equ 0x1BADB002 ; multiboot magic 7 MB_CHECKSUM equ -(MB_MAGIC + MB_FLAGS) 8 9 section .multiboot 10 align 4 11 dd MB_MAGIC 12 dd MB_FLAGS 13 dd MB_CHECKSUM 14 15 section .bss 16 align 16 17 stack_bottom: 18 resb 16384 ; 16 KiB 19 stack_top: 20 21 section .text 22 global _start 23 extern start_kernel 24 25 _start: 26 ; setup stack 27 mov esp, stack_top 28 29 ; set arguments 30 push ebx ; multiboot_info_t mbi 31 push eax ; uint32_t magic 32 33 ; enter high-level kernel 34 call start_kernel 35 36 cli 37 .loop: 38 hlt 39 jmp .loop