Year 2 compilers coureswork

all_scopes.asm 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. fun1:
  13. li $a0, 72
  14. li $v0, 9
  15. syscall
  16. sw $fp, 4($v0)
  17. sw $16, 8($fp)
  18. sw $17, 12($fp)
  19. sw $18, 16($fp)
  20. sw $19, 20($fp)
  21. sw $20, 24($fp)
  22. sw $21, 28($fp)
  23. sw $22, 32($fp)
  24. sw $23, 36($fp)
  25. or $fp, $0, $v0
  26. la $t0, fun1
  27. sw $t0, 0($fp)
  28. sw $ra, 64($fp)
  29. li $8, 11
  30. or $16, $0, $8
  31. sw $16, 8($fp)
  32. sw $17, 12($fp)
  33. sw $18, 16($fp)
  34. sw $19, 20($fp)
  35. sw $20, 24($fp)
  36. sw $21, 28($fp)
  37. sw $22, 32($fp)
  38. sw $23, 36($fp)
  39. or $v1, $0, $16
  40. jr $31
  41. main:
  42. li $a0, 72
  43. li $v0, 9
  44. syscall
  45. sw $fp, 4($v0)
  46. or $fp, $0, $v0
  47. la $t0, main
  48. sw $t0, 0($fp)
  49. sw $ra, 64($fp)
  50. li $9, 4
  51. or $16, $0, $9
  52. jal fun1
  53. lw $fp, 4($fp)
  54. lw $ra, 64($fp)
  55. lw $16, 8($fp)
  56. or $10, $0, $v1
  57. mult $16, $10
  58. mflo $11
  59. sw $16, 8($fp)
  60. sw $17, 12($fp)
  61. sw $18, 16($fp)
  62. sw $19, 20($fp)
  63. sw $20, 24($fp)
  64. sw $21, 28($fp)
  65. sw $22, 32($fp)
  66. sw $23, 36($fp)
  67. or $v1, $0, $11
  68. jr $31
  69. done:
  70. or $a0, $v1, $0
  71. ori $v0, $0, 1
  72. syscall
  73. ori $a0, $0, 0xA
  74. ori $v0, $0, 0xB
  75. syscall
  76. ori $v0, $0, 10
  77. syscall