Copy code
section .data
result db 1 初始化结果为1
section .text
global _start
_start:
mov ecx, 10 使用ecx寄存器计数
cmp ecx, 0 检查10是否为0,是则跳过循环
je done
loop:
mul byte[result] 乘以目前的结果
dec ecx 计数肢团铅器减1
cmp ecx, 0 如果或老计数器为0,则跳出循环
jne loop
done:
结束程序
mov eax, 1系统调用号1代表退出
xor ebx, ebx 返回值为0
int 0x80 执行系统调用
以上程序将10的阶乘计算在result变量中。由于历好10的阶乘为一个很大的数,需要使用一个64位变量来保存结果,但由于使用了单字节变量作为示例,仅适用于小型数据输入。
#include <stdio.h>//主函数main()
{
int i,a,s=1//定义变举慎唯量
printf("输入要算的阶正培乘数:")
scanf("%d",&a)
for(i=1i<a+1i++)//阶乘计算
{
s=s*i
}
printf("%d\n",s)//打印结果孝粗
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)