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位變量來保存結果,但由於使用了單字節變量作為示例,僅適用於小型數據輸入。