Advertisement
nRikee

Multiplicación iterativa ASM MIPS R2000

Sep 18th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. .globl __start
  2. .text 0x00400000
  3. __start:
  4. # Demanem M
  5. li $v0,11 # Índex de la crida al sistema imprimir char.
  6. li $a0,'P' # Valor a imprimir 'P'
  7. syscall # Crida al sistema
  8. li $a0,'=' # Valor a imprimir '='
  9. syscall # Crida al sistema
  10. li $v0,5 # Posa l'index per a la crida al sistema
  11. syscall # Demana un int al sistema (M)
  12. move $t0,$v0 # El valor arreplegat es mou a un registre temporal
  13.  
  14. # Demanem Q
  15. li $v0,11 # Índex de la crida al sistema imprimir char.
  16. li $a0,'Q' # Valor a imprimir 'Q'
  17. syscall # Crida al sistema
  18. li $a0,'=' # Valor a imprimir '='
  19. syscall # Crida al sistema
  20. li $v0,5 # Posa l'index per a la crida al sistema
  21. syscall # Demana un int al sistema (Q)
  22.  
  23. move $a1,$v0
  24. move $a0,$t0
  25. jal Mult # Salt incondicional a la direcció Mult (subrutina de multiplicació)
  26.  
  27. # Crida al sistema final
  28. move $t0,$v0 # Mou a un registre temporal
  29. li $v0,11
  30. li $a0,'R'
  31. syscall # Crida al sistema printchar('R')
  32. li $a0,'='
  33. syscall # Crida al sistema printchar('=')
  34. move $a0,$t0 # El resultat P el mou a $a0
  35. li $v0,1
  36. syscall # printInt($a0)
  37. li $v0,10
  38. syscall # Acaba el programa.
  39.  
  40. # Subrutina de multiplicació
  41. Mult: li $v0, 0 # Buida el registre per a la crida del sistema, per a anar fent la multiplicació
  42. beqz $a1, MultRet # Condicional, si $a1 == 0, anar a la direcció MultRet
  43. MultFor: add $v0, $v0, $a0 # Suma el valor M al que hi ha en el valor de retorn de la funció
  44. addi $a1, $a1, -1 # Resta 1 unitat al valor Q, que serveix com a contador del bucle
  45. bne $a1, $zero, MultFor # Condicional, mentre Q != 0, fa un salt a la direcció MultFor
  46. MultRet: jr $ra # Fa un salt a la direcció guardada en $ra (crida al sistema final)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement