- 论坛徽章:
- 0
|
回复 #5 MMMIX 的帖子
对比了一下汇编后的结果,发现效率是一样的,而且linux内核中用的都是for(i=0;i<MAX;i++)这种写法。昨天看到一个哥们的帖子也提到这个问题,说后一种写法编译后运行效率高,又正好我们这边代码都用的后一种写法,所以误解了。
.file "a.c"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
movl $0, -8(%ebp)
jmp .L2
.L3:
addl $1, -8(%ebp)
.L2:
cmpl $99, -8(%ebp)
jle .L3
movl $100, -8(%ebp)
jmp .L4
.L5:
subl $1, -8(%ebp)
.L4:
cmpl $0, -8(%ebp)
jg .L5
addl $20, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.3.2-1ubuntu11) 4.3.2"
.section .note.GNU-stack,"",@progbits |
|