diff options
Diffstat (limited to 'assembly/fizzbuzz/fizzbuzz.S')
| -rw-r--r-- | assembly/fizzbuzz/fizzbuzz.S | 43 |
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" |
