Intercessão entre dois vetores em Assembly

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

[ Hits: 3.606 ]

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

Escrita de número em octal em Assembly puro para Linux 64 bits (NASM - Netwide Assembler)

Retorna a diferença entre dois vetores em Assemly

Escrita de número em decimal em Assembly Puro para Linux 64 bits (Nasm - Netwide Assembler)

Soma dois números lidos da memória

Fibonacci em assembly


  

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