Intercessão entre dois vetores em Assembly

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

[ Hits: 3.633 ]

Homepage: ...

Download Intercessao




Este algoritmo tem como objetivo comparar os elementos de dois vetores unidimensionais e salvar em outro vetor a intercessão deles.

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,11
    vetor2: .word 0,5,6,7,8,9,10,11,12,13
    vetor3: .space 40
    ler: .asciiz"\nIntercessao 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
 principal:
     beq $t2,$t4,intercessao
     lw $t8,0($t1)
     la $t0,vetor1
     li $t3,0

     addi $t2,$t2,1
     addi $t1,$t1,4
loop1:
        beq $t3,$t4,principal
    lw $t7,0($t0)
    addi $t0,$t0,4
    beq $t7,$t8,guarda
    addi $t3,$t3,1

    j loop1
guarda:
    sw $t7,0($t9)
    addi $t9,$t9,4
    addi $t5,$t5,1
    j principal
intercessao:
        la $a0,ler
        li $v0,4
        syscall
        li $t8,4
        mult $t5,$t8
        mflo  $t4
        sub $t9,$t9,$t4
resultado:
    beq $t6,$t5,saida
        lw $t7,0($t9)
    addi $t6,$t6,1
    addi $t9,$t9,4
    move $a0,$t7
        li $v0,1
        syscall
        la $a0,espaco
        li $v0,4
        syscall
        j resultado
 saida:

Scripts recomendados

Inverter uma string, Assembly8086

Calculadora em C com Assembly (multiplataforma)

Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (NASM - Netwide Assembler)

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

Soma dois números lidos da memória


  

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