РЕДАКТИРОВАТЬ:
Во сколько сложность времени алгоритм реализован в этой сборке?
.file "a.c"
.section .rodata
.LC0:
.string "%d\n"
.LC1:
.string "%d"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
andl $-16, %esp
subl $32, %esp
cmpl $1, 8(%ebp)
jg .L2
movl $.LC0, %eax
movl $-1, 4(%esp)
movl %eax, (%esp)
call printf
jmp .L8
.L2:
movl $.LC1, %edx
movl 12(%ebp), %eax
addl $4, %eax
movl (%eax), %eax
leal 24(%esp), %ecx
movl %ecx, 8(%esp)
movl %edx, 4(%esp)
movl %eax, (%esp)
call __isoc99_sscanf
testl %eax, %eax
jne .L4
movl $.LC0, %eax
movl $-2, 4(%esp)
movl %eax, (%esp)
call printf
jmp .L8
.L4:
movl 24(%esp), %eax
testl %eax, %eax
jns .L5
movl $.LC0, %eax
movl $-3, 4(%esp)
movl %eax, (%esp)
call printf
jmp .L8
.L5:
movl $0, 28(%esp)
jmp .L6
.L7:
addl $1, 28(%esp)
.L6:
movl 24(%esp), %eax
cmpl %eax, 28(%esp)
jl .L7
movl $.LC0, %eax
movl 28(%esp), %edx
movl %edx, 4(%esp)
movl %eax, (%esp)
call printf
.L8:
leave
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section .note.GNU-stack,"",@progbits
Спасибо!