Retorna a diferença entre dois vetores em Assemly

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

[ Hits: 3.973 ]

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 Uppercase

codigo em assembley que soma dois numeros

"Clear Screen" para Linux 64 bits em Assembly Puro (GNU Assembly)

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

Escrita de um número em decimal na tela em Assembly Puro para Linux x86 (GNU Assembler)


  

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