Files
eth-summaries/semester3/spca/code-examples/01_asm/06_factorial.s
2026-01-13 14:46:30 +01:00

12 lines
388 B
ArmAsm

factorial:
pushq %rbx # Preserve frame pointer
movl %edi, %ebx
movl $1, %eax
cmpl $1, %edi
jle .QUIT # Base case reached: quit
leal -1(%rdi), %edi # Prepare args for next function call
call factorial
imull %ebx, %eax # Use result of function call
.QUIT:
popq %rbx # Restore frame pointer
ret