以下是一种基于x86架构的汇编语言(NASM)实现:
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位变量来保存结果,但由于使用了单字节变量作为示例,仅适用于小型数据输入。
温馨提示:答案为网友推荐,仅供参考