fernlader/boot16.S

40 lines
872 B
ArmAsm
Raw Normal View History

2025-07-04 03:10:55 +02:00
// vim: et:sw=12:ts=12:sts=12
.global _start
.text
2025-07-04 04:02:05 +02:00
.code16
2025-07-04 03:10:55 +02:00
_start:
2025-07-04 04:02:05 +02:00
mov %cs, %ax
mov %ax, %ds
push $message
call print
add $2, %sp
1: hlt
jmp 1b
print: push %bp
mov %sp, %bp
push %bx
push %si
2025-07-04 03:10:55 +02:00
xor %bx, %bx
2025-07-04 04:02:05 +02:00
mov 4(%bp), %si
1: lodsb
or %al, %al
jz 2f
2025-07-04 03:10:55 +02:00
mov $0x0E, %ah
int $0x10
jmp 1b
2025-07-04 04:02:05 +02:00
2: pop %si
pop %bx
mov %bp, %sp
pop %bp
ret
message: .asciz "Hello, World!"