diff options
Diffstat (limited to 'arch/i386/boot/boot.s')
-rw-r--r-- | arch/i386/boot/boot.s | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/i386/boot/boot.s b/arch/i386/boot/boot.s new file mode 100644 index 0000000..56ac227 --- /dev/null +++ b/arch/i386/boot/boot.s @@ -0,0 +1,32 @@ +.set ALIGN, 1<<0 +.set MEMINFO, 1<<1 +.set FLAGS, ALIGN | MEMINFO +.set MAGIC, 0x1BADB002 +.set CHECKSUM, -(MAGIC + FLAGS) + +.section .multiboot +.align 4 +.long MAGIC +.long FLAGS +.long CHECKSUM + +.section .bss +.align 16 +stack_bottom: +.skip 16384 +stack_top: + +.section .text +.global _start +.type _start, @function + +_start: + movl $stack_top, %esp + + call _init + call kernel_main + + cli +1: hlt + jmp 1b +.size _start, . - _start |