undar-lang/test/loop.asm.lisp

31 lines
628 B
Common Lisp

((code (
(label main)
(load-imm $0 5.0)
(load-imm $1 5000)
(load-imm $2 0)
(load-imm $3 -1)
(label loop-body)
(load $4 &loop-body)
(load-imm $5 5.0)
(addr $0 $0 $5)
(addi $1 $1 $3)
(jgei $4 $1 $2)
(rtou $1 $0)
(load $6 &terminal_str)
(load $7 &help)
(strlen $8 $7)
(syscall DEVICE_WRITE $6 $7 $8)
(syscall DEVICE_READ $7 $2)
(strlen $3 $2)
(utos $4 $1)
(strlen $5 $4)
(syscall DEVICE_WRITE $6 $4 $5)
(rtos $9 $0)
(strlen $10 $9)
(syscall DEVICE_WRITE $6 $9 $10)
(strlen $8 $7)
(syscall DEVICE_WRITE $6 $7 $8)
(halt)))
(data (label terminal-str "/dev/term/0")
(label help "Enter a string:")))