tiny_os/root/root.S

27 lines
477 B
ArmAsm

.macro syscall msg ptr
li a0, \msg
li a1, \ptr
ecall
.endm
.text
.global _start
_start:
la t0, msg
.loop:
lb a2, 0(t0)
beqz a2, .yield
# msg: label = DebugPutChar(1), bits = 1, length = 3, transfer_cap = false
# ptr: (any)
syscall (1<<14 | 0<<8 | 3<<1 | 0), 0
addi t0, t0, 1
j .loop
.yield:
# msg: label = Yield(2), bits = 1, length = 2, transfer_cap = false
# ptr: (any)
syscall (2<<14 | 0<<8 | 2<<1 | 0), 0
j _start
.data
msg : .string "Hello, world!\n\0"