Retorna a diferença entre dois vetores em Assemly

Publicado por Marcos Augusto (última atualização em 09/10/2015)

[ Hits: 3.951 ]

Homepage: ...

Download diferenca




Este algoritmo tem como objetivo comparar os elementos de dois vetores unidimensionais e retornar a diferença entre eles.

Ele foi implementado no MARS: http://courses.missouristate.edu/kenvollmar/mars

  



Esconder código-fonte

.data
    vetor1: .word 1,2,3,4,5,6,7,8,9,10
    vetor2: .word 11,12,13,14,15,16,17,18,19,20
    vetor3: .space 40
    ler: .asciiz"\nDiferenca entre o vetor A e B: "
    espaco: .asciiz" "
.text
    la $t0,vetor1
    la $t1,vetor2
    la $t9,vetor3
    li $t2,0
    li $t4,10
    li $t5,0
    li $t6,0
 difAB:
        lw $t8,0($t0)
        la $t1,vetor2
         li $t3,0
        beq $t2,$t4,indice
        addi $t2,$t2,1
        addi $t0,$t0,4

loop1:
        beq $t3,$t4,guardaDifAB
    lw $t7,0($t1)
    addi $t1,$t1,4
    beq $t7,$t8,difAB
    addi $t3,$t3,1
    j loop1
 guardaDifAB:
    sw $t8,0($t9)
    addi $t9,$t9,4
    addi $t5,$t5,1
    j difAB
indice:
    li $t2,4
    mult $t5,$t2
    mflo  $t4
    sub $t9,$t9,$t4

    la $a0,ler
    li $v0,4
    syscall
    j saida
saida:
    beq $t6,$t5 fim
    lw $t8,0($t9)
    move $a0,$t8
    li $v0,1
    syscall
    la $a0,espaco
    li $v0,4
    syscall
    la $a0,espaco
    li $v0,4
    syscall
    addi $t6, $t6,1
    addi $t9,$t9,4
    j saida
 fim:

Scripts recomendados

Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assemble

Escrita de número em binário em Assembly Puro para Linux 64 bits (Nasm - Netwide Assembler)

Fatorial Assembly MIPS

Soma dois números lidos da memória

sdfgsd


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts