section .text
global _start ;must be declared for linker (ld)
_start: ;tell linker entry point
mov edx,_is
mov ecx,_in
mov ebx,0 ; stdin
mov eax,3 ; sys_read
int 0x80 ; call
push ecx
mov edx,len
mov ecx,msg
call escreve
pop ecx
cmp byte [ecx],'1' ; ve se o conteudo e' 1
je um
jne dois
um:
mov edx,l1
mov ecx,_um
call escreve
jmp sair
dois:
mov edx,l2
mov ecx,_dois
call escreve
jmp sair
escreve: ;mete-se o tamanho da string em edx, e a string em ecx
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
ret
sair:
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Malandro, carregaste ',0x14 ;our dear string
len equ $ - msg ;length of our dear string
_um db 'um',0x2
l1 equ $ - _um
_dois db 'dois',0x4
l2 equ $ - _dois
_in db '',0x0
_is equ $ - _in