41 lines
442 B
ArmAsm
41 lines
442 B
ArmAsm
global loader
|
|
global stack_ptr
|
|
|
|
extern main
|
|
|
|
MODULEALIGN equ 1<<0
|
|
MEMINFO equ 1<<1
|
|
FLAGS equ MODULEALIGN | MEMINFO
|
|
MAGIC equ 0x1BADB002
|
|
CHECKSUM equ -(MAGIC + FLAGS)
|
|
|
|
section .mbheader
|
|
align 4
|
|
MultiBootHeader:
|
|
dd MAGIC
|
|
dd FLAGS
|
|
dd CHECKSUM
|
|
|
|
section .text
|
|
|
|
STACKSIZE equ 0x4000
|
|
|
|
loader:
|
|
mov esp, stack+STACKSIZE
|
|
push eax
|
|
push ebx
|
|
|
|
call main
|
|
|
|
cli
|
|
|
|
hang:
|
|
hlt
|
|
jmp hang
|
|
|
|
section .bss
|
|
align 4
|
|
stack:
|
|
resb STACKSIZE
|
|
stack_ptr:
|