kernel/src/start.s

48 lines
737 B
ArmAsm
Raw Normal View History

.set MULTIBOOT_MAGIC, 0xE85250D6
.set MULTIBOOT_ARCH, 0
.set MULTIBOOT_LENGTH, 16 + 8
.set MULTIBOOT_CHECKSUM, -(MULTIBOOT_MAGIC + MULTIBOOT_ARCH + MULTIBOOT_LENGTH)
2017-11-01 04:43:42 +00:00
2021-12-18 21:59:16 +00:00
.section .multiboot
2017-11-01 08:53:27 +00:00
.align 4
.long MULTIBOOT_MAGIC
.long MULTIBOOT_ARCH
.long MULTIBOOT_LENGTH
.long MULTIBOOT_CHECKSUM
2017-11-01 09:45:56 +00:00
.long 0
.long 8
2017-11-01 08:53:27 +00:00
2021-12-18 21:59:16 +00:00
2017-11-01 04:43:42 +00:00
.section .bss
2021-12-18 21:59:16 +00:00
.global _kernel_stack_start
.global _kernel_stack_end
2017-11-01 04:43:42 +00:00
.align 16
2021-12-18 21:59:16 +00:00
_kernel_stack_start:
2017-11-01 04:43:42 +00:00
.skip 16384 # 16 KiB
2021-12-18 21:59:16 +00:00
_kernel_stack_end:
2017-11-05 15:26:30 +00:00
2017-11-01 04:43:42 +00:00
.section .text
.global _start
2017-11-04 02:35:17 +00:00
2017-11-01 04:43:42 +00:00
.type _start, @function
2017-11-04 02:35:17 +00:00
.type halt, @function
2017-11-01 04:43:42 +00:00
_start:
2021-12-18 21:59:16 +00:00
mov $_kernel_stack_end, %esp // Initialize stack
2017-11-04 02:25:57 +00:00
push %ebx // Multiboot information pointer
push %eax // Multiboot magic number
call main
2017-11-04 02:32:23 +00:00
2017-11-08 04:49:30 +00:00
call halt
2017-11-01 04:43:42 +00:00
.size _start, . - _start