32 lines
775 B
Common Lisp
32 lines
775 B
Common Lisp
((code
|
|
(label main
|
|
(load-immediate $0 5.0)
|
|
(load-immediate $1 5000)
|
|
(load-immediate $2 0)
|
|
(load-immediate $3 -1)
|
|
(label loop-body
|
|
(load $4 &loop-body)
|
|
(load-immediate $5 5.0)
|
|
(add-real $0 $0 $5)
|
|
(add-int $1 $1 $3)
|
|
(jump-gt-eq-int $4 $1 $2))
|
|
(real-to-nat $1 $0)
|
|
(load-immediate $6 &terminal-str)
|
|
(load $7 &help)
|
|
(string-length $8 $7)
|
|
(syscall DEVICE-WRITE $6 $7 $8)
|
|
(syscall DEVICE-READ $7 $2)
|
|
(string-length $3 $2)
|
|
(nat-to-string $4 $1)
|
|
(string-length $5 $4)
|
|
(syscall DEVICE-WRITE $6 $4 $5)
|
|
(real-to-string $9 $0)
|
|
(string-length $10 $9)
|
|
(syscall DEVICE-WRITE $6 $9 $10)
|
|
(string-length $8 $7)
|
|
(syscall DEVICE-WRITE $6 $7 $8)
|
|
(halt)))
|
|
(data
|
|
(label terminal-str "/dev/term/0")
|
|
(label help "Enter a string:")))
|