Year 2 compilers coureswork

mips.asm 668B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. li $a0, 68
  2. li $v0, 9
  3. syscall
  4. or $fp, $0, $v0
  5. la $t0, main
  6. sw $t0, 0($fp)
  7. sw $0, 4($fp)
  8. la $ra, done
  9. j main
  10. blah:
  11. sw $ra, 64($fp)
  12. or $16, $0, $5
  13. li $8, 3
  14. or $17, $0, $8
  15. add $9, $17, $16
  16. or $v1, $0, $9
  17. jr $31
  18. main:
  19. sw $ra, 64($fp)
  20. li $10, 4
  21. or $16, $0, $10
  22. li $11, 4
  23. or $5, $0, $11
  24. li $a0, 68
  25. li $v0, 9
  26. syscall
  27. sw $fp, 4($v0)
  28. sw $16, 8($fp)
  29. or $fp, $0, $v0
  30. la $t0, blah
  31. sw $t0, 0($fp)
  32. jal blah
  33. lw $fp, 4($fp)
  34. lw $ra, 64($fp)
  35. lw $16, 8($fp)
  36. or $12, $0, $v1
  37. or $17, $0, $12
  38. li $13, 5
  39. ble $17, $13, L0
  40. li $15, 10
  41. add $14, $16, $15
  42. or $16, $0, $14
  43. j L1
  44. L0:
  45. li $25, 5
  46. add $24, $16, $25
  47. or $16, $0, $24
  48. L1:
  49. add $8, $17, $16
  50. or $v1, $0, $8
  51. jr $31
  52. done:
  53. ori $v0, $0, 10
  54. syscall