Guest User

Untitled

a guest
Jul 24th, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ##########################################################################
  2. ## Nome: Somador de 64 bits.                        ##
  3. ## Implementadores: Bruno Dexheimer e Lucas Feijo.          ##
  4. ## Descricao: Somador de dois numeros de 64 bits, armazena simplesmente ##
  5. ##        no registrador e imprime no console.          ##
  6. ##########################################################################
  7.     .data
  8. var1hi: .word   0xFFFFFFFF
  9. var1lo: .word   0xFFFFFFFF
  10. var2hi: .word   0xFFFFFFFF
  11. var2lo: .word   0xFFFFFFFF
  12.             # o objetivo eh que a resposta da soma seja 0x1FFFFFFFFFFFFFFFE
  13.     .text
  14.     .globl main
  15. main:
  16.  
  17. la  $t2,var1hi  # armazena o endereco da var no registrador
  18. lw  $t2,0($t2)  # abre a palavra contida naquele endereco no respectivo registrador
  19.  
  20. la  $t3,var1lo  # armazena o endereco da var no registrador
  21. lw  $t3,0($t3)  # abre a palavra contida naquele endereco no respectivo registrador
  22.  
  23. la  $t4,var2hi  # armazena o endereco da var no registrador
  24. lw  $t4,0($t4)  # abre a palavra contida naquele endereco no respectivo registrador
  25.  
  26. la  $t5,var2lo  # armazena o endereco da var no registrador
  27. lw  $t5,0($t5)  # abre a palavra contida naquele endereco no respectivo registrador
  28.  
  29. addu    $t1,$t3,$t5 # insere palavra less significant
  30. sltu    $t0,$t1,$t5 # calcula o carry
  31. sltu    $t6,$t1,$t5 # coloca o carry num registrador proprio
  32. addu    $t0,$t0,$t2 # insere a primeira palavra most significant
  33. addu    $t0,$t0,$t4 # insere a segunda palavra most significant
  34.  
  35. li  $v0,34      # codigo de impressao de hexa
  36. add $a0,$t6,$zero   # numero vai pro register a0 somado a zero (pseudo-soma)
  37. syscall         # imprime
  38. li  $v0,34      # codigo de impressao de hexa
  39. add $a0,$t0,$zero   # numero vai pro register a0 somado a zero (pseudo-soma)
  40. syscall         # imprime
  41. li  $v0,34      # codigo de impressao de hexa
  42. add $a0,$t1,$zero   # numero vai pro register a0 somado a zero (pseudo-soma)
  43. syscall         # imprime
  44.  
  45. li  $v0,10      # codigo de finalizacao do programa
  46. syscall         # finaliza
Add Comment
Please, Sign In to add comment