All pastes #175022 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-09-18 13:01 UTC
rendered paste body
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