;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 ; if ( x < 10 ) ; res += y/2; ;else if ( x < 20 ) ; res += 2*y; ;else ; res += 3*y; mov eax, [x] cmp eax, 10 jae elseif mov eax, [y] shr eax, 1 add [res], eax jmp fim elseif: cmp eax, 20 jae else mov eax, [res] add eax, [y] add eax, [y] jmp fim else mov eax, [res] add eax, [y] add eax, [y] add eax, [y] mov [res], eax ; chamada ao sistema para terminar o programa fim: mov eax, 1 ;codigo de "exit" mov ebx, 0 ;valor retornado ao sistema int 0x80 ;chamda ao sitema