Retorna a diferença entre dois vetores em Assemly

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

[ Hits: 3.952 ]

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

GAS Inteiro para String

Crivo de Eratóstenes Simples para Linux x86 em Assembly Puro (GNU Assembler)

Retorna o maior e menor elemento de um vetor em Assembly

script corewars

GAS Bubblesort


  

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