Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##########################################################################
- ## Nome: Somador de 64 bits. ##
- ## Implementadores: Bruno Dexheimer e Lucas Feijo. ##
- ## Descricao: Somador de dois numeros de 64 bits, armazena simplesmente ##
- ## no registrador e imprime no console. ##
- ##########################################################################
- .data
- var1hi: .word 0xFFFFFFFF
- var1lo: .word 0xFFFFFFFF
- var2hi: .word 0xFFFFFFFF
- var2lo: .word 0xFFFFFFFF
- # o objetivo eh que a resposta da soma seja 0x1FFFFFFFFFFFFFFFE
- .text
- .globl main
- main:
- la $t2,var1hi # armazena o endereco da var no registrador
- lw $t2,0($t2) # abre a palavra contida naquele endereco no respectivo registrador
- la $t3,var1lo # armazena o endereco da var no registrador
- lw $t3,0($t3) # abre a palavra contida naquele endereco no respectivo registrador
- la $t4,var2hi # armazena o endereco da var no registrador
- lw $t4,0($t4) # abre a palavra contida naquele endereco no respectivo registrador
- la $t5,var2lo # armazena o endereco da var no registrador
- lw $t5,0($t5) # abre a palavra contida naquele endereco no respectivo registrador
- addu $t1,$t3,$t5 # insere palavra less significant
- sltu $t0,$t1,$t5 # calcula o carry
- sltu $t6,$t1,$t5 # coloca o carry num registrador proprio
- addu $t0,$t0,$t2 # insere a primeira palavra most significant
- addu $t0,$t0,$t4 # insere a segunda palavra most significant
- li $v0,34 # codigo de impressao de hexa
- add $a0,$t6,$zero # numero vai pro register a0 somado a zero (pseudo-soma)
- syscall # imprime
- li $v0,34 # codigo de impressao de hexa
- add $a0,$t0,$zero # numero vai pro register a0 somado a zero (pseudo-soma)
- syscall # imprime
- li $v0,34 # codigo de impressao de hexa
- add $a0,$t1,$zero # numero vai pro register a0 somado a zero (pseudo-soma)
- syscall # imprime
- li $v0,10 # codigo de finalizacao do programa
- syscall # finaliza
Add Comment
Please, Sign In to add comment