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