Retorna a diferença entre dois vetores em Assemly

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

[ Hits: 3.815 ]

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 octal na tela em Assembly Puro para Linux x86 (GNU Assembly)

script corewars

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

Intercessão entre dois vetores em Assembly

"Clear Screen" para Linux x86 com Inline Assembly (embutido no código) em C


  

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