-
-
[旧帖] [求助]关于c与汇编 0.00雪花
-
发表于: 2011-3-12 23:20 769
-
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 ,为什么
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: