oxytoxin

unix-like kernel
git clone git://git.evenfri.pw/oxytoxin.git
Log | Files | Refs | README | LICENSE

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