Pular para o conteúdo

Retorna o maior e menor elemento de um vetor em Assembly

Este algoritmo tem como objetivo comparar os elementos de um vetor unidimensional e retornar o maior e o menor entre eles.

Ele foi implementado no MARS: http://courses.missouristate.edu/kenvollmar/mars
Marcos Augusto IMarcos
Hits: 11.150 Categoria: C/C++ Subcategoria: Assembly
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este algoritmo tem como objetivo comparar os elementos de um vetor unidimensional e retornar o maior e o menor entre eles.

Ele foi implementado no MARS: http://courses.missouristate.edu/kenvollmar/mars
Download MaiorMenorVetor Enviar nova versão

Esconder código-fonte

.data
    vetor: .word 0,2,3,4,5,6,7,8,19,10
    ler1: .asciiz"\nMaior elemento do vetor: "
    ler2: .asciiz"\nMenor elemento do Vetor: "
    ler3: .asciiz"\nElementos do Vetor que foram inseridos direto na memoria:  "
    pula_linha: .asciiz"  "

.text
    la $t0,vetor
    li $t1, 0
    la $t8,vetor
    li $t3,10
    lw $t5,0($t0) #maior
    lw $t6,0($t0) #menor
principal:
    la $a0,ler3
    li $v0,4
    syscall
loop:
     beq $t1,$t3,saida
     lw $t4,0($t0)

     move $a0, $t4
     li $v0,1
     syscall

     la $a0,pula_linha
     li $v0,4
     syscall

     lw $t7,0($t8)
     addi $t1,$t1,1
     addi $t0,$t0,4
     addi $t8,$t8,4
     bgt $t4,$t5,guarda
     blt $t7,$t6,guardaMenor
     j loop
guarda:
     move $t5,$t4
     j loop
guardaMenor:
    move $t6,$t7
    j loop
saida:
    la $a0,ler1
    li $v0,4
    syscall

        move $a0, $t5
        li $v0,1
        syscall

        la $a0,ler2
    li $v0,4
    syscall

        move $a0, $t6
        li $v0,1
        syscall

"Clear Screen" para Linux x86 em Assembly Puro (Nasm - Netwide Assembler)

GAS Uppercase

Calculadora em C com Assembly (multiplataforma)

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

Ano bissexto em assembly

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.