mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-25 05:55:13 +00:00
71 lines
1.3 KiB
ArmAsm
71 lines
1.3 KiB
ArmAsm
.set MULTIBOOT_MAGIC, 0x1badb002
|
|
.set MULTIBOOT_PAGE_ALIGN, 0x1
|
|
.set MULTIBOOT_MEMORY_INFO, 0x2
|
|
.set MULTIBOOT_VIDEO_MODE, 0x4
|
|
.set multiboot_flags, MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_VIDEO_MODE
|
|
.set multiboot_checksum, -(MULTIBOOT_MAGIC + multiboot_flags)
|
|
|
|
.section .multiboot
|
|
.align 4
|
|
|
|
.long MULTIBOOT_MAGIC
|
|
.long multiboot_flags
|
|
.long multiboot_checksum
|
|
|
|
|
|
/* for MULTIBOOT_MEMORY_INFO */
|
|
.long 0x00000000 /* header_addr */
|
|
.long 0x00000000 /* load_addr */
|
|
.long 0x00000000 /* load_end_addr */
|
|
.long 0x00000000 /* bss_end_addr */
|
|
.long 0x00000000 /* entry_addr */
|
|
|
|
/* for MULTIBOOT_VIDEO_MODE */
|
|
.long 0x00000000 /* mode_type */
|
|
.long 1280 /* width */
|
|
.long 1024 /* height */
|
|
.long 32 /* depth */
|
|
|
|
.section .stack, "aw", @nobits
|
|
stack_bottom:
|
|
.skip 32768
|
|
stack_top:
|
|
|
|
.section .text
|
|
|
|
.global start
|
|
.type start, @function
|
|
|
|
.extern init
|
|
.type init, @function
|
|
|
|
.extern multiboot_info_ptr
|
|
.type multiboot_info_ptr, @object
|
|
|
|
start:
|
|
cli
|
|
cld
|
|
|
|
mov $stack_top, %esp
|
|
|
|
and $-16, %esp
|
|
|
|
pushl %esp
|
|
pushl %eax /* Multiboot header magic */
|
|
pushl %ebx /* Multiboot header pointer */
|
|
|
|
mov %ebx, multiboot_info_ptr
|
|
|
|
call init
|
|
|
|
pushl $exit_message
|
|
call kprintf
|
|
|
|
cli
|
|
|
|
loop:
|
|
hlt
|
|
jmp loop
|
|
|
|
exit_message:
|
|
.asciz "Kernel exited."
|