1
0
Fork 0
mirror of https://github.com/tailix/kernel.git synced 2024-10-30 12:03:52 -04:00
kernel/arch/start.s

49 lines
815 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 00:43:42 -04:00
.section .multiboot
2017-11-01 04:53:27 -04:00
.align 4
.long MULTIBOOT_MAGIC
.long MULTIBOOT_ARCH
.long MULTIBOOT_LENGTH
.long MULTIBOOT_CHECKSUM
2017-11-01 05:45:56 -04:00
.long 0
.long 8
2017-11-01 04:53:27 -04:00
2017-11-01 00:43:42 -04:00
.section .bss
.align 16
stack_bottom:
.skip 16384 # 16 KiB
stack_top:
.section .text
.global _start
2017-11-03 22:35:17 -04:00
.global halt
2017-11-01 00:43:42 -04:00
.type _start, @function
2017-11-03 22:35:17 -04:00
.type halt, @function
2017-11-01 00:43:42 -04:00
_start:
2017-11-03 22:25:57 -04:00
mov $stack_top, %esp // Initialize stack
push %ebx // Multiboot information pointer
push %eax // Multiboot magic number
2017-11-03 22:15:05 -04:00
call init
2017-11-03 22:32:23 -04:00
mov $stack_top, %esp // Initialize stack
2017-11-04 06:38:28 -04:00
push %eax // Kernel information pointer
2017-11-03 22:32:23 -04:00
call main
2017-11-03 22:35:17 -04:00
halt:
2017-11-01 00:43:42 -04:00
cli
1:
hlt
jmp 1b
.size _start, . - _start
2017-11-03 22:35:17 -04:00
.size _halt, . - halt