... .printnum: // eax: number to print pushl %ecx pushl %eax pushl %ebx pushl %edx movl $10,%ebx leal 4(%esp),%ebp call .numconv popl %edx popl %ebx popl %eax popl %ecx ret .numconv: xorl %edx,%edx divl %ebx cmpl $0,%eax jne .numrec .goon: leal (%ebp),%ecx movl $48,(%ecx) addl %edx,(%ecx) push %eax movl %ecx,%eax call .print popl %eax ret .numrec: pushl %edx call .numconv popl %edx jmp .goon ...