simplify factorial
This commit is contained in:
2 files changed
+7
-9
No files matched your search
+7
-9
@@ -2,14 +2,11 @@
|
||||
.global _start
|
||||
|
||||
# factorial
|
||||
# - rdi as input number
|
||||
# - rax as result
|
||||
# - rdi (n) as input number
|
||||
# - rax (r) as result
|
||||
factorial:
|
||||
push rbp
|
||||
mov rbp, rsp
|
||||
|
||||
cmp rdi, 1
|
||||
jle base_case # if n <= 1 return 1
|
||||
cmp rdi, 1 # compare n to 1
|
||||
jle done # if n <= 1 return (r = 1)
|
||||
|
||||
push rdi # save n
|
||||
dec rdi # rdi = n - 1
|
||||
@@ -23,10 +20,11 @@ base_case:
|
||||
mov rax, 1
|
||||
|
||||
done:
|
||||
mov rsp, rbp
|
||||
pop rbp
|
||||
ret
|
||||
|
||||
# prints number as decimal
|
||||
# from rax register
|
||||
# just to demo, don't explain
|
||||
print_rax_digit:
|
||||
sub rsp, 16
|
||||
|
||||
|
||||
Reference in new issue
Block a user