1 .file "test.c" 2 .intel_syntax 3 .section .rodata 4 .LC0: 5 .string "OMG, -10==10" 6 .LC1: 7 .string "nothing special here" 8 .text 9 .globl main 10 .type main, @function 11 main: 12 lea %ecx, [%esp+4] 13 and %esp, -16 14 push DWORD PTR [%ecx-4] 15 push %ebp 16 mov %ebp, %esp 17 push %ecx 18 sub %esp, 20 19 mov DWORD PTR [%ebp-8], 2 20 mov %edx, DWORD PTR [%ebp-8] 21 mov %eax, %edx 22 sal %eax, 2 23 add %eax, %edx 24 add %eax, %eax 25 sub %eax, 10 26 mov %edx, %eax 27 sar %edx, 31 28 mov %ecx, %edx 29 xor %ecx, %eax 30 sub %ecx, %edx 31 mov %eax, DWORD PTR [%ebp-8] 32 imul %eax, %eax, -10 33 add %eax, 10 34 mov %edx, %eax 35 sar %edx, 31 36 xor %eax, %edx 37 sub %eax, %edx 38 cmp %ecx, %eax 39 jne .L2 40 mov DWORD PTR [%esp], OFFSET FLAT:.LC0 41 call puts 42 jmp .L6 43 .L2: 44 mov DWORD PTR [%esp], OFFSET FLAT:.LC1 45 call puts 46 .L6: 47 add %esp, 20 48 pop %ecx 49 pop %ebp 50 lea %esp, [%ecx-4] 51 ret 52 .size main, .-main 53 .ident "GCC: (GNU) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)" 54 .section .note.GNU-stack,"",@progbits