Year 2 compilers coureswork

func_args.asm 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. aplusb:
  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, aplusb
  27. sw $t0, 0($fp)
  28. sw $ra, 64($fp)
  29. or $16, $0, $5
  30. or $17, $0, $6
  31. add $8, $16, $17
  32. sw $16, 8($fp)
  33. sw $17, 12($fp)
  34. sw $18, 16($fp)
  35. sw $19, 20($fp)
  36. sw $20, 24($fp)
  37. sw $21, 28($fp)
  38. sw $22, 32($fp)
  39. sw $23, 36($fp)
  40. or $v1, $0, $8
  41. jr $31
  42. main:
  43. li $a0, 72
  44. li $v0, 9
  45. syscall
  46. sw $fp, 4($v0)
  47. or $fp, $0, $v0
  48. la $t0, main
  49. sw $t0, 0($fp)
  50. sw $ra, 64($fp)
  51. li $9, 2
  52. or $5, $0, $9
  53. li $10, 3
  54. or $6, $0, $10
  55. jal aplusb
  56. lw $fp, 4($fp)
  57. lw $ra, 64($fp)
  58. or $11, $0, $v1
  59. li $12, 4
  60. or $5, $0, $12
  61. li $13, 5
  62. or $6, $0, $13
  63. jal aplusb
  64. lw $fp, 4($fp)
  65. lw $ra, 64($fp)
  66. or $14, $0, $v1
  67. or $5, $0, $11
  68. or $6, $0, $14
  69. jal aplusb
  70. lw $fp, 4($fp)
  71. lw $ra, 64($fp)
  72. or $15, $0, $v1
  73. or $16, $0, $15
  74. sw $16, 8($fp)
  75. sw $17, 12($fp)
  76. sw $18, 16($fp)
  77. sw $19, 20($fp)
  78. sw $20, 24($fp)
  79. sw $21, 28($fp)
  80. sw $22, 32($fp)
  81. sw $23, 36($fp)
  82. or $v1, $0, $16
  83. jr $31
  84. done:
  85. or $a0, $v1, $0
  86. ori $v0, $0, 1
  87. syscall
  88. ori $a0, $0, 0xA
  89. ori $v0, $0, 0xB
  90. syscall
  91. ori $v0, $0, 10
  92. syscall