; exportar label de inicio do programa global _start section .data ; seccao data - dados inicializados ; variaveis de 32 bits x: dd 2 y: dd 2 res: dd 0 section .text ; seccao text - codigo _start: nop ; dummy ; x = 2*(x+y) mov eax, [x] add eax, [y] add eax, eax ; soma eax a eax, ou seja 2*eax ; para multiplicar por 2 ; tambem podia fazer utilizando o shift para a esquerda dec eax ; subtrai um a eax mov [x], eax ; guarda o valor de eax em X ; chamada ao sistema para terminar o programa mov eax, 1 ; codigo de "exit" mov ebx, 0 ; valor retornado ao sistema int 0x80 ; chamada ao sistema