hello.M1 (621B)
1 ## P1 "hello, world" — portable pseudo-ISA source. 2 ## 3 ## Same program on every P1 target; only the backing defs file swaps 4 ## (see p1_aarch64.M1, and eventually p1_amd64.M1 / p1_riscv64.M1). 5 ## 6 ## Linux calling convention on P1: 7 ## SYSCALL num -> r0, args -> r1..r6, result -> r0 8 9 :_start 10 ## write(fd=1, buf=&msg, count=14) 11 li_r0 sys_write # r0 = syscall number (write) 12 li_r1 '01000000' # r1 = fd (stdout) 13 li_r2 &msg # r2 = buf 14 li_r3 '0E000000' # r3 = count (14) 15 syscall 16 17 ## exit(0) 18 li_r0 sys_exit # r0 = syscall number (exit) 19 li_r1 '00000000' # r1 = status 20 syscall 21 22 :msg 23 "Hello, world! 24 " 25 26 :ELF_end