Hi
schaut euch mal die unterschiede an wenn das ganze z.B als einfache zähleschleife ohne schleifenrupf ausgeführt wird. [z.B, so for ( ; ; ); ]
Code:
.file "schneller1.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
subl %eax, %esp
movl $0, -4(%ebp)
.L2:
cmpl $9, -4(%ebp)
jle .L4
jmp .L3
.L4:
leal -4(%ebp), %eax
incl (%ea
x)
jmp .L2
.L3:
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (GNU) 3.3.2 (Debian)"
Code:
.file "schneller2.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
subl %eax, %esp
movl $1, -4(%ebp)
.L2:
cmpl $10, -4(%ebp)
jle .L4
jmp .L3
.L4:
leal -4(%ebp), %eax
incl (%eax)
jmp .L2
.L3:
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (GNU) 3.3.2 (Debian)"
ich seh da keinen wesentlichen unterschied
gruss
christoph
Lesezeichen