30 lines
577 B
ArmAsm
30 lines
577 B
ArmAsm
; since we have no stack we have to create one for the OS
|
|
|
|
global loader
|
|
|
|
; NOTE: these symbols are what we use to represent the "magic bytes" for the whole os
|
|
MAGIC_NUMBER equ 0x1BADB002
|
|
FLAGS equ 0x0
|
|
CHECKSUM equ -MAGIC_NUMBER
|
|
|
|
extern kmain
|
|
|
|
section .text
|
|
; align all instructions to 4 byte boundary by the x86 instruction set law
|
|
align 4
|
|
; dropping our magic and other things into memory
|
|
dd MAGIC_NUMBER
|
|
dd FLAGS
|
|
dd CHECKSUM
|
|
|
|
; sets up our gdt and segment selectors for later use
|
|
|
|
loader:
|
|
call kmain
|
|
|
|
.loop:
|
|
mov eax, 0xfeedbeef
|
|
jmp .loop
|
|
mov eax, 0xfeedbeef
|
|
|