
marvinla
(usa Slackware)
Enviado em 02/11/2005 - 22:00h
Pessoal, estou estudando assembly e fazendo uns testes... então resolvi colocar um programinha q manipula vetores aqui no VOL, mas como não tem assembly na seção scripts, vou colocar aqui mesmo:
;declara as variaveis ja inicializadas
SECTION .DATA
maior db 'Maior',10
lenmaior equ $-maior
menor db 'Menor',10
lenmenor equ $-menor
igual db 'Igualin!!',10
lenigual equ $-igual
;declara as variaveis nao inicializadas
SECTION .bss
vetor resb 4 ;o vetor!
numero: resb 1 ;um numero qualquer
SECTION .TEXT
global _start
;comece!
_start:
mov byte [numero], 7 ;coloca o numero 7 em 'numero'
mov byte [vetor+0], 1 ;preenche
mov byte [vetor+1], 2 ;os elementos
mov byte [vetor+2], 3 ;do
mov byte [vetor+3], 4 ;vetor
mov al, [numero] ;copia o conteudo de numero em al...
cmp byte [vetor+3], al ;... e compara com o elemento ->4<- do vetor
jg ehmaior ;caso for maior...
jl ehmenor ;caso for menor...
je ehigual ;caso for igual...
ehmaior: ;escreve maior na tela
mov ecx, maior
mov edx, lenmaior
call escreve
jmp fim ;sai do programa
ehmenor: ;escreve menor na tela
mov ecx, menor
mov edx, lenmenor
call escreve
jmp fim ;sai do programa
ehigual: ;escreve igualin na tela
mov ecx, igual
mov edx, lenigual
call escreve
fim: ;sai do programa
mov eax, 1
mov ebx, 0
int 0x80
escreve: ;escreve o conteudo em ecx na tela
mov eax, 4
mov ebx, 1
int 0x80
ret
espero que seja útil pra alguem, e se tiverem dicas sobre como melhorar esse código eu agradeço!
Marcos