33 lines
565 B
Common Lisp
33 lines
565 B
Common Lisp
((code
|
|
(label main
|
|
(load-immediate $0 1)
|
|
(push $0)
|
|
(load-immediate $0 1)
|
|
(push $0)
|
|
(call &add)
|
|
(pop $0)
|
|
(int-to-string $1 $0)
|
|
(push $1)
|
|
(call &println)
|
|
(halt))
|
|
|
|
(label add
|
|
(pop $0)
|
|
(pop $1)
|
|
(add-int $2 $1 $0)
|
|
(push $2)
|
|
(return))
|
|
|
|
(label println
|
|
(load-immediate $0 &terminal-str)
|
|
(load-immediate $3 &new-line)
|
|
(pop $1)
|
|
(string-length $2 $1)
|
|
(syscall DEVICE-WRITE $0 $1 $2)
|
|
(string-length $4 $3)
|
|
(syscall DEVICE-WRITE $0 $3 $4)
|
|
(return)))
|
|
(data
|
|
(label terminal-str "/dev/term/0")
|
|
(label new-line "\n")))
|