.file "testfunc.c" .globl TEST_NUMBER .data .align 2 .type TEST_NUMBER,@object .size TEST_NUMBER,2 TEST_NUMBER: .value 256 .globl count .align 4 .type count,@object .size count,4 count: .long 0 .globl exit_flag .align 4 .type exit_flag,@object .size exit_flag,4 exit_flag: .long 0 .align 4 .type throttle_print.0,@object .size throttle_print.0,4 throttle_print.0: .long 0 .section .rodata.str1.32,"aMS",@progbits,1 .align 32 .LC2: .string "\nAdding & dropping random array elements,(from a set of 000..%03u)\n" .section .rodata.str1.1,"aMS",@progbits,1 .LC3: .string "Ctrl C to exit" .section .rodata.str1.32 .align 32 .LC0: .string "\n%lu array elements randomly dropped and added in %lus" .align 32 .LC1: .string " (%lu/s)\n \n" .text .p2align 2,,3 .globl main .type main,@function main: pushl %ebp movl %esp, %ebp pushl %edi pushl %esi pushl %ebx subl $12, %esp andl $-16, %esp cmpl $1, 8(%ebp) movl $1, %edi jle .L2 pushl $0 pushl $10 pushl $0 movl 12(%ebp), %eax pushl 4(%eax) call __strtol_internal addl $16, %esp testl %eax, %eax jle .L2 movw %ax, TEST_NUMBER .L2: movzwl TEST_NUMBER, %edx subl $12, %esp sall $1, %edx pushl %edx call malloc movl %eax, %esi movl $0, (%esp) call time popl %ebx movl %eax, start popl %eax pushl $exit_info_sig pushl $2 call signal xorl %edx, %edx movw TEST_NUMBER, %cx addl $16, %esp cmpw %cx, %dx jae .L24 .L10: movzwl %dx, %ebx movw %dx, (%esi,%ebx,2) incl %edx cmpw %cx, %dx jb .L10 .p2align 2,,3 .L24: incl count call rand movw TEST_NUMBER, %bx movzwl %bx, %edx movl %edx, %ecx cltd idivl %ecx cmpw %bx, %dx movl %edx, %ecx jae .L27 .p2align 2,,3 .L18: movzwl %cx, %edx incl %ecx movw (%esi,%edx,2), %ax cmpw %bx, %cx movw %ax, -2(%esi,%edx,2) jb .L18 .L27: leal -1(%ebx), %ecx subl $8, %esp movzwl %cx, %edx pushl %edx pushl %esi call GetLowestValueAvailable movzwl TEST_NUMBER, %edx movw %ax, -2(%esi,%edx,2) movl exit_flag, %eax addl $16, %esp testl %eax, %eax jne .L28 testl %edi, %edi je .L24 subl $8, %esp leal -1(%edx), %ebx pushl %ebx pushl $.LC2 call printf xorl %edi, %edi movl $.LC3, (%esp) call puts addl $16, %esp jmp .L24 .L28: subl $12, %esp pushl $0 call time movl %eax, %esi addl $12, %esp subl start, %esi pushl %esi pushl count pushl $.LC0 call printf popl %eax popl %edx movl count, %eax xorl %edx, %edx divl %esi pushl %eax pushl $.LC1 call printf movl $1, (%esp) call exit .Lfe1: .size main,.Lfe1-main .p2align 2,,3 .globl RemoveNumber .type RemoveNumber,@function RemoveNumber: pushl %ebp movl %esp, %ebp movl 12(%ebp), %ecx cmpw TEST_NUMBER, %cx pushl %ebx movl 8(%ebp), %ebx jae .L69 .p2align 2,,3 .L67: movzwl %cx, %edx movw (%ebx,%edx,2), %ax movw %ax, -2(%ebx,%edx,2) incl %ecx cmpw TEST_NUMBER, %cx jb .L67 .L69: popl %ebx leave ret .Lfe2: .size RemoveNumber,.Lfe2-RemoveNumber .section .rodata.str1.1 .LC4: .string "\033[H" .LC5: .string "%03d " .text .p2align 2,,3 .globl printArray .type printArray,@function printArray: pushl %ebp movl %esp, %ebp pushl %esi pushl %ebx subl $12, %esp pushl $.LC4 movl 8(%ebp), %esi call printf popl %eax pushl stdout xorl %ebx, %ebx call fflush addl $16, %esp cmpw TEST_NUMBER, %bx jb .L75 .L77: leal -8(%ebp), %esp popl %ebx popl %esi leave ret .p2align 2,,3 .L75: movzwl %bx, %ecx subl $8, %esp movzwl (%esi,%ecx,2), %edx pushl %edx pushl $.LC5 incl %ebx call printf addl $16, %esp cmpw TEST_NUMBER, %bx jb .L75 jmp .L77 .Lfe3: .size printArray,.Lfe3-printArray .p2align 2,,3 .globl exit_info .type exit_info,@function exit_info: pushl %ebp movl %esp, %ebp pushl %ebx subl $16, %esp pushl $0 call time movl %eax, %ebx addl $12, %esp subl start, %ebx pushl %ebx pushl count pushl $.LC0 call printf popl %eax popl %edx movl count, %eax xorl %edx, %edx divl %ebx pushl %eax pushl $.LC1 call printf movl $1, (%esp) call exit .Lfe4: .size exit_info,.Lfe4-exit_info .p2align 2,,3 .globl exit_info_sig .type exit_info_sig,@function exit_info_sig: pushl %ebp movl %esp, %ebp movl $1, exit_flag leave ret .Lfe5: .size exit_info_sig,.Lfe5-exit_info_sig .comm start,4,4 .ident "GCC: (GNU) 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)"