call __alloca
call ___main
movl $0, -4(%ebp)
movl $0, -8(%ebp)
L2:
cmpl $99, -8(%ebp)
jg L3
movl $0, -12(%ebp)
movl -8(%ebp), %eax
imull -8(%ebp), %eax
movl %eax, -12(%ebp)
movl -12(%ebp), %edx
leal -4(%ebp), %eax
addl %edx, (%eax)
leal -8(%ebp), %eax
incl (%eax)
jmp L2
L3:
movl $0, %eax
leave
ret call ___main
movl $0, -4(%ebp)
movl $0, -12(%ebp) ;唯有这里区别
movl $0, -8(%ebp)
L2:
cmpl $99, -8(%ebp)
jg L3
movl $0, -12(%ebp)
movl -8(%ebp), %eax
imull -8(%ebp), %eax
movl %eax, -12(%ebp)
movl -12(%ebp), %edx
leal -4(%ebp), %eax
addl %edx, (%eax)
leal -8(%ebp), %eax
incl (%eax)
jmp L2
L3:
movl $0, %eax
leave
ret 学长指的是c++吧。
在c下没有多大区别吧。
我是gcc -S查看的,temp的差别只是在循环前初始了。我用的是c |