Advertisement
nRikee

Pract2 - ETC

Sep 25th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. # Multiplicació amb paràmetres per direcció.
  2.  
  3. .globl __start
  4. .data 0x10000000
  5. M: .space 4 # Asigna espai en memòria a la variable M // int M;
  6. Q: .space 4 # Asigna espai en memòria a la variable Q // int Q;
  7. R: .space 4 # Asigna espai en memòria a la variable R // int R;
  8.  
  9. .text 0x00400000
  10. __start:
  11.  
  12. # Carrega M
  13. li $a0,'M' # Asigna a $a0 el caràcter 'M' // $a0 = 'M'
  14. la $a1, M # Asigna a &a1 l'adreça de la variable M // $a1 = &M
  15. jal InputV
  16. # Carrega Q
  17. li $a0,'Q'
  18. la $a1, Q
  19. jal InputV
  20. # MultV(&M,&Q,&R)
  21. la $a0, M
  22. la $a1, Q
  23. la $a2, R
  24. jal MultV
  25. #PromptV('R',R)
  26. li $a0, 'R'
  27. add $a1, $zero, $a2
  28. jal PromptV
  29.  
  30. # Acaba el programa
  31. li $v0,10 # system.exit()
  32. syscall
  33.  
  34.  
  35. InputV: li $v0, 11 # Index del print_char()
  36. syscall
  37. li $v0, 11 # Index del print_char('=')
  38. li $a0, '='
  39. syscall
  40. li $v0, 5 # Index de read_int()
  41. syscall
  42. sw $v0, 0($a1) # El que hi ha en $v0 ho guarde en la direcció $a1
  43. jr $ra
  44.  
  45.  
  46. MultV: lw $t0, 0($a0)
  47. lw $t1, 0($a1)
  48. bgez $t1, Bot # if ( $t1>=0 ) goto Bot
  49. li $t4, -1
  50. mult $t0, $t4
  51. mult $t1, $t4
  52.  
  53. Bot: li $t2, 0
  54. beq $t1, 0, MultB
  55. MultA: add $t2, $t2, $t0
  56. addi $t1, $t1, -1
  57. bne $t1, $zero, MultA
  58. MultB: add $a2, $zero, $t2
  59. jr $ra
  60.  
  61.  
  62. PromptV: li $v0, 11 # Index del print_char()
  63. syscall
  64. li $v0, 11 # Index del print_char('=')
  65. li $a0, '='
  66. syscall
  67. li $v0, 1
  68. add $a0, $zero, $a1
  69. syscall
  70. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement