.file "add3test.c" .section .rodata .align 4 .LC0: .string "Ther are %d Command line arguments\n" .LC1: .string "%d" .LC2: .string "\t%s %d\n" .LC3: .string "type 3 numbers: " .LC4: .string "%d %d %d" .LC5: .string "Main says %d + %d + %d = %d\n" .text .globl main .type main, @function main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ebx pushl %ecx subl $64, %esp movl %ecx, -44(%ebp) movl -44(%ebp), %edx movl (%edx), %eax movl %eax, 4(%esp) movl $.LC0, (%esp) call printf movl $0, -16(%ebp) jmp .L2 .L3: movl $0, -32(%ebp) movl -16(%ebp), %eax sall $2, %eax movl -44(%ebp), %ecx addl 4(%ecx), %eax movl (%eax), %edx leal -32(%ebp), %eax movl %eax, 8(%esp) movl $.LC1, 4(%esp) movl %edx, (%esp) call __isoc99_sscanf movl -32(%ebp), %edx movl -16(%ebp), %eax sall $2, %eax movl -44(%ebp), %ecx addl 4(%ecx), %eax movl (%eax), %eax movl %edx, 8(%esp) movl %eax, 4(%esp) movl $.LC2, (%esp) call printf addl $1, -16(%ebp) .L2: movl -16(%ebp), %eax movl -44(%ebp), %edx cmpl (%edx), %eax jl .L3 movl $.LC3, (%esp) call printf leal -28(%ebp), %eax movl %eax, 12(%esp) leal -24(%ebp), %eax movl %eax, 8(%esp) leal -20(%ebp), %eax movl %eax, 4(%esp) movl $.LC4, (%esp) call __isoc99_scanf movl -28(%ebp), %eax movl -24(%ebp), %edx movl -20(%ebp), %ecx movl %eax, 8(%esp) movl %edx, 4(%esp) movl %ecx, (%esp) call add3 movl %eax, -12(%ebp) movl -28(%ebp), %edx movl -24(%ebp), %ecx movl -20(%ebp), %ebx movl -12(%ebp), %eax movl %eax, 16(%esp) movl %edx, 12(%esp) movl %ecx, 8(%esp) movl %ebx, 4(%esp) movl $.LC5, (%esp) call printf movl $0, %eax addl $64, %esp popl %ecx popl %ebx popl %ebp leal -4(%ecx), %esp ret .size main, .-main .ident "GCC: (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4" .section .note.GNU-stack,"",@progbits