.file "fact3.s" .section .rodata .STR0: .string "The factorial of 6 is %d\n " .text .globl main main: pushl %ebp movl %esp, %ebp addl $-16, %esp movl $6, -4(%ebp) movl $1, -8(%ebp) WHILE1: movl $1, %edx xor %eax, %eax cmp -4(%ebp), %edx setl %al movl %eax, %edx cmp $0, %edx je WHILEXIT1 movl -8(%ebp), %edx imul -4(%ebp), %edx movl %edx, -8(%ebp) movl -4(%ebp), %edx subl $1, %edx movl %edx, -4(%ebp) jmp WHILE1 WHILEXIT1: pushl %esi addl $-16, %esp movl $.STR0, (%esp) movl -8(%ebp), %eax movl %eax, 4(%esp) call printf addl $16, %esp popl %esi movl $0, %eax movl %ebp, %esp popl %ebp ret /* Sample code generated from fact3.mj */