summaryrefslogtreecommitdiff
path: root/assembly/fizzbuzz/fizzbuzz.S
diff options
context:
space:
mode:
Diffstat (limited to 'assembly/fizzbuzz/fizzbuzz.S')
-rw-r--r--assembly/fizzbuzz/fizzbuzz.S43
1 files changed, 43 insertions, 0 deletions
diff --git a/assembly/fizzbuzz/fizzbuzz.S b/assembly/fizzbuzz/fizzbuzz.S
new file mode 100644
index 0000000..9960776
--- /dev/null
+++ b/assembly/fizzbuzz/fizzbuzz.S
@@ -0,0 +1,43 @@
+li s0,0
+li s1,15
+li s2,5
+li s3,3
+li s4,100
+mainloop:
+li a0,'\n'
+li a7,11
+ecall
+bge s0,s4,end
+addi s0,s0,1
+remu t0,s0,s1
+bnez t0,1f
+la a0,fizz
+li a7,4
+ecall
+la a0,buzz
+li a7,4
+ecall
+j mainloop
+1: remu t0,s0,s2
+bnez t0,1f
+la a0,buzz
+li a7,4
+ecall
+j mainloop
+1: remu t0,s0,s3
+bnez t0,1f
+la a0,fizz
+li a7,4
+ecall
+j mainloop
+1: mv a0,s0
+li a7,1
+ecall
+j mainloop
+
+end:
+li a7,10
+ecall
+
+fizz: .asciz "Fizz"
+buzz: .asciz "Buzz"