repo.or.cz
/
idlebox.git
/
commitdiff
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
raw
|
patch
|
inline
|
side by side
(parent:
a76ccc7
)
waht
author
alex.s
<
[email protected]
>
Thu, 15 Jul 2010 10:16:52 +0000
(15 18:16 +0800)
committer
alex.s
<
[email protected]
>
Thu, 15 Jul 2010 10:16:52 +0000
(15 18:16 +0800)
recursive.s
[new file with mode: 0644]
patch
|
blob
diff --git a/recursive.s
b/recursive.s
new file mode 100644
(file)
index 0000000..
dd7a297
--- /dev/null
+++ b/
recursive.s
@@ -0,0
+1,29
@@
+.section .data
+.section .text
+.globl _start
+.globl factorial
+
+_start:
+pushl $4
+call factorial
+addl $4, %esp
+movl %eax, %ebx
+movl $1, %eax
+int $0x80
+
+.type factorial, @function
+factorial:
+pushl %ebp
+movl %esp, %ebp
+movl 8(%ebp), %eax
+cmpl $1 %eax
+je end_factorial
+decl %eax
+pushl %eax
+call factorial
+movl 8(%ebp), %ebx
+imull %ebx, %eax
+end_factorial:
+movl %ebp, %esp
+popl %ebp
+ret