.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"