Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Calculates gcd of 2 numbers
- # lab04 of Computer Architecture course
- # at CSE.UoI.gr
- .data
- n1:
- .word 462
- n2:
- .word 1071
- result:
- .word 0
- .globl main
- .text
- main:
- la $s0, n1 # Get address of n1
- lw $a0, 0($s0) # Get n1
- lw $a1, 4($s0) # Get n2
- jal gcd
- la $t0, result # Address where the result should go to
- sw $v0, 0($t0)
- # end the program
- li $v0, 10
- syscall
- ######################################
- # Write your code here for mod and gcd
- mod:
- sub $a0, $a0, $a1
- bne $a0, $a1, exitloop
- j mod
- exitloop:
- slt $a0, $a1, $a0
- add $v0, $a0, $zero
- jal gcd
- gcd:
- slt $a0, $a1, $a0
- add $t1, $a0, $zero
- add $a0, $a1, $zero
- add $a1, $t1, $zero
- beq $a1, $zero, zero
- add $a0, $v0, $zero
- jal mod
- zero:
- addi $sp, $sp, -4
- sw $a1, 0($sp)
- add $v0, $a0, $zero
- lw $a1, 0($sp)
- addi $sp, $sp, 4
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement