-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathboot.s
More file actions
39 lines (31 loc) · 884 Bytes
/
boot.s
File metadata and controls
39 lines (31 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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
# Reserve some space for the stack
.section .bss
.align 16
stack_bottom:
.skip 16384 # 16 KiB
stack_top:
# Entry point (see linker.ld)
.section .text
.global _start
.type _start, @function
_start:
# Setup the stack pointer
mov $stack_top, %esp
# Initialize stuff if needed
# Main entry point of kernel.c
call kernel_main
# Busy loop if we arrive here.
cli
1: hlt
jmp 1b