29 lines
482 B
ArmAsm
29 lines
482 B
ArmAsm
global loader ; entry symbol for ELF
|
|
extern kmain
|
|
|
|
MAGIC_NUMBER equ 0x1BADB002 ; magic number constant
|
|
FLAGS equ 0x3
|
|
CHECKSUM equ -(MAGIC_NUMBER + FLAGS) ; calculate the checksum
|
|
KERNEL_STACK_SIZE equ 4096
|
|
|
|
section .multiboot
|
|
align 4 ; code must be 4 byte aligned
|
|
dd MAGIC_NUMBER
|
|
dd FLAGS
|
|
dd CHECKSUM
|
|
|
|
section .bss
|
|
align 4
|
|
kernel_stack:
|
|
resb KERNEL_STACK_SIZE
|
|
|
|
section .text
|
|
loader:
|
|
mov esp, kernel_stack + KERNEL_STACK_SIZE
|
|
|
|
call kmain
|
|
|
|
;cli
|
|
loop: hlt
|
|
jmp loop
|