Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. # Calculates gcd of 2 numbers
  2. # lab04 of Computer Architecture course
  3. # at CSE.UoI.gr
  4.  
  5. .data
  6. n1:
  7. .word 462
  8. n2:
  9. .word 1071
  10. result:
  11. .word 0
  12.  
  13. .globl main
  14.  
  15. .text
  16. main:
  17.  
  18. la $s0, n1 # Get address of n1
  19. lw $a0, 0($s0) # Get n1
  20.  
  21. lw $a1, 4($s0) # Get n2
  22.  
  23. jal gcd
  24.  
  25. la $t0, result # Address where the result should go to
  26. sw $v0, 0($t0)
  27.  
  28. # end the program
  29. li $v0, 10
  30. syscall
  31.  
  32. ######################################
  33. # Write your code here for mod and gcd
  34. mod:
  35.  
  36. sub $a0, $a0, $a1
  37. bne $a0, $a1, exitloop
  38. j mod
  39.  
  40. exitloop:
  41. slt $a0, $a1, $a0
  42. add $v0, $a0, $zero
  43. jal gcd
  44.  
  45. gcd:
  46. slt $a0, $a1, $a0
  47. add $t1, $a0, $zero
  48. add $a0, $a1, $zero
  49. add $a1, $t1, $zero
  50. beq $a1, $zero, zero
  51. add $a0, $v0, $zero
  52. jal mod
  53.  
  54. zero:
  55. addi $sp, $sp, -4
  56. sw $a1, 0($sp)
  57. add $v0, $a0, $zero
  58. lw $a1, 0($sp)
  59. addi $sp, $sp, 4
  60. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement