Files
osdev-from-nothing/kernel.asm
2018-10-07 20:18:20 +01:00

39 lines
836 B
NASM

;; ThanOS
;; Copyright Benjamin Kyd (c) 2018
;; declare constants for the multiboot header
.set ALIGN, 1<<0 ; align loaded modules on page boundaries
.set MEMINFO, 1<<1 ; provide memory map
.set FLAGS, ALIGN | MEMINFO ; this is the Multiboot 'flag' field
.set MAGIC, 0x1BADB002 ;'magic number' lets bootloader find the header
.set CHECKSUM, -(MAGIC + FLAGS) ; checksum of above, to prove we are multiboot
.section .multiboot
.align 4
.long MAGIC
.long FLAGS
.long CHECKSUM
.section .bss
.align 16
stack_bottom:
.skip 16384 ; 16 KiB
stack_top:
.section .text
.global _start
.type _start, @function
_start:
mov $stack_top, %esp
call kernel_main
cli
1: hlt
jmp 1b
_hang:
hlt
jmp _hang
.size _start, . - _start