Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.     n: .word 7
  3.  
  4. .text
  5. main:
  6.     la $a0, n
  7.     lw $a0, 0($a0)
  8.    
  9.     addi $sp, $sp, -8
  10.     sw $ra, 0($sp)
  11.     sw $a0, 4($sp)
  12.    
  13.     jal T
  14.    
  15.     add $a0, $v0, $0
  16.     addi $v0, $0, 1
  17.     syscall
  18.    
  19.     lw $ra, 0($sp)
  20.     lw $a0, 4($sp)
  21.     addi $sp, $sp, 8
  22.    
  23.     jr $ra
  24.    
  25.    
  26. T:
  27.     add $t1, $0, $0          # $t1 indice i
  28.    
  29.    
  30.     For:
  31.         beq $t1, $a0, Stop
  32.         addi $sp, $sp, -12
  33.         sw $ra, 0($sp)
  34.         sw $a0, 4($sp)
  35.         sw $t1, 8($sp)
  36.        
  37.         add $a0, $t1, $0           # $a0 = i
  38.        
  39.         jal F
  40.        
  41.         add $t4, $t4, $v0         # ermenegildo
  42.        
  43.         lw $ra, 0($sp)
  44.         lw $a0, 4($sp)
  45.         lw $t1, 8($sp)
  46.         addi $sp, $sp, 12
  47.        
  48.         addi $t1, $t1, 1         # i += 1
  49.         j For
  50.     Stop:
  51.         add $v0, $0, $t4        # return ermenegildo
  52.         jr $ra
  53.  
  54. F:
  55.     addi $t0, $0, 2                    # $t0 = 2
  56.     slt $t1, $a0, $t0                  # if(i < 2) ? return 1 : goto Else
  57.     beq $t1, $0, Else
  58.     addi $v0, $0, 1
  59.     jr $ra
  60.    
  61.     Else:
  62.         addi $sp, $sp, -12
  63.         sw $ra, 0($sp)
  64.         sw $s0, 4($sp)
  65.         sw $s1, 8($sp)
  66.        
  67.         add $s0, $a0, $0            # $s0 = i
  68.         addi $a0, $s0, -1           # $a0 = $s0 - 1
  69.        
  70.         jal F
  71.        
  72.         add $s1, $0, $v0            # bob = $v0
  73.        
  74.         addi $a0, $s0, -2           # $a0 = i-2
  75.         jal F
  76.        
  77.         mult $s1, $v0             # $v0 * bob
  78.         mflo $v0                  
  79.         addi $v0, $v0, 1          # $v0 += 1
  80.        
  81.         lw $ra, 0($sp)
  82.         lw $s0, 4($sp)
  83.         lw $s1, 8($sp)
  84.         addi $sp, $sp, 12
  85.         jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement