Intercessão entre dois vetores em Assembly

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

[ Hits: 3.607 ]

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

Hora do sistema

GAS Informações do sistema

FreeBSD Write

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

Relógio em assembly NES 8 bits (variante do 6502)


  

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