.section .data printf_string: .asciz "Factorial of %lu is %lu\n" .section .text .global factorial factorial: # Assume the argument is in %rdi # Check for the base case cmp $1, %rdi jg general_case mov $1, %rax ret # Exit with base case general_case: push %rdi sub $1, %rdi call factorial pop %rbx mul %rbx ret