Year 2 compilers coureswork

modulo.asm 536B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. .globl __start
  2. __start:
  3. li $a0, 72
  4. li $v0, 9
  5. syscall
  6. or $fp, $0, $v0
  7. la $t0, main
  8. sw $t0, 0($fp)
  9. sw $0, 4($fp)
  10. jal main
  11. j done
  12. main:
  13. li $a0, 72
  14. li $v0, 9
  15. syscall
  16. sw $fp, 4($v0)
  17. or $fp, $0, $v0
  18. la $t0, main
  19. sw $t0, 0($fp)
  20. sw $ra, 64($fp)
  21. li $8, 5
  22. li $10, 2
  23. div $8, $10
  24. mfhi $9
  25. sw $16, 8($fp)
  26. sw $17, 12($fp)
  27. sw $18, 16($fp)
  28. sw $19, 20($fp)
  29. sw $20, 24($fp)
  30. sw $21, 28($fp)
  31. sw $22, 32($fp)
  32. sw $23, 36($fp)
  33. or $v1, $0, $9
  34. jr $31
  35. done:
  36. or $a0, $v1, $0
  37. ori $v0, $0, 1
  38. syscall
  39. ori $a0, $0, 0xA
  40. ori $v0, $0, 0xB
  41. syscall
  42. ori $v0, $0, 10
  43. syscall