.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