Files
mango/arch/x86_64/start_64.S
2022-12-14 18:31:27 +00:00

58 lines
908 B
ArmAsm

.code64
.section .boot.rodata, "a", @progbits
/*******
ERROR MESSAGE STRINGS
*******/
kernel_identifier:
.asciz " Socks kernel version " BUILD_ID " "
.section .boot.text, "ax", @progbits
print_kernel_identifier:
/* line 1: empty padding line */
mov $kernel_identifier, %rsi
mov $0xb8000, %rdi
1:
movw $0x7000, (%rdi) # black text on white background.
add $0x02, %rdi
inc %rsi
cmpb $0, (%rsi)
jne 1b
/* line 2: kernel identiifer */
mov $kernel_identifier, %rsi
mov $0xb80A0, %rdi
2:
movsb
movb $0x70, (%rdi) # black text on white background
inc %rdi
cmpb $0, (%rsi)
jne 2b
/* line 3: empty padding line */
mov $kernel_identifier, %rsi
mov $0xb8140, %rdi
1:
movw $0x7000, (%rdi) # black text on white background.
add $0x02, %rdi
inc %rsi
cmpb $0, (%rsi)
jne 1b
ret
.global start_64
.type start_64, @function
start_64:
call print_kernel_identifier
cli
hlt