-
-
[旧帖] [求助]关于c与汇编 0.00雪花
-
发表于: 2011-3-12 23:20 802
-
c做的函数,求n!
int njie(int n)
{
int result=1;
do{
result *=n;
n=n-1;
}while(n>1);
return result;
}
编译成汇编
movl 8(%ebp),%edx
movl $1,%eax
.L1
imull %edx,%eax
subl $1,%edx
cmpl $1,%edx
jg .L1
由于判断 cmpl 在循环最后 假如 n的值为负值,显然不符合条件,但在汇编中%eax的值已经改变,最后 return 的值确是已经改变的%eax ,为什么
int njie(int n)
{
int result=1;
do{
result *=n;
n=n-1;
}while(n>1);
return result;
}
编译成汇编
movl 8(%ebp),%edx
movl $1,%eax
.L1
imull %edx,%eax
subl $1,%edx
cmpl $1,%edx
jg .L1
由于判断 cmpl 在循环最后 假如 n的值为负值,显然不符合条件,但在汇编中%eax的值已经改变,最后 return 的值确是已经改变的%eax ,为什么
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
赞赏
雪币:
留言: