Intercessão entre dois vetores em Assembly

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

[ Hits: 3.741 ]

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

Assembler 8086 - Simples código que mostra horas e minutos em pontos

GAS Uppercase

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

GAS Calculadora de um dígito

script corewars


  

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