Advertisement
chete

factorial mips

May 7th, 2014
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text
  2. .globl main
  3. main:
  4. #leer numero
  5. li $v0,5
  6. syscall
  7.  
  8. move $a0,$v0
  9.  
  10. jal factorial
  11.  
  12. move $a0,$v0
  13.  
  14. li $v0,1
  15. syscall
  16.  
  17. li $v0,10
  18. syscall
  19.  
  20. factorial:
  21.     beq $a0,$zero,trivial #comparo con cero
  22.     li $t0,1    #comparo con 1 tambien
  23.     beq $a0,$t0,trivial
  24.     addi $sp,$sp,-4 #apilar el ra para poder desapilarlo luego ya que ra no esta en el mail y si no se perderia
  25.     sw $ra,($sp)
  26.     addi $sp,$sp,-4
  27.     sw $a0,($sp)
  28.      #metemos a0 en la pila
  29.    
  30.     addi $a0,$a0,-1 #manera de hacer factorial en ensamblador
  31.     jal factorial
  32.     #$v0 = (n-1)! ahora
  33.     lw $a0,($sp)
  34.    
  35.     addi $sp,$sp,4
  36.     mul $v0,$a0,$v0
  37.     lw $ra, ($sp)#desapilamos ra
  38.     addi $sp, $sp,4
  39.     jr $ra
  40.     trivial:
  41.         li $v0,1#----IMPORTANTE----#
  42.         jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement