boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

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