.section .rodata
.LC0:.string "%d "
print:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L1
.L2:
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
addl $1,%ebx
.L1:
cmpl $100,%ebx
jle .L2
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print2:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L3
.L4:
movl %ebx,%eax
andl $1,%eax
cmpl $0,%eax
jne .L5
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
.L5:
addl $1,%ebx
.L3:
cmpl $100,%ebx
jle .L4
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print7:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L6
.L7:
movl %ebx,%eax
cltd
movl $7,%ecx
idivl %ecx
cmpl $0,%edx
jne .L8
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
.L8:
addl $1,%ebx
.L6:
cmpl $100,%ebx
jle .L7
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
//void print_mn(int m,int n);
print_mn:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%ebx
jmp .L9
.L10:
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
addl $1,%ebx
.L9:
cmpl 12(%ebp),%ebx
jle .L10
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_50:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L11
.L12:
cmpl $50,%ebx
jle .L13
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
.L13:
addl $1,%ebx
.L11:
cmpl $100,%ebx
jle .L12
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_r:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $100,%ebx
jmp .L14
.L15:
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
subl $1,%ebx
.L14:
cmpl $1,%ebx
jge .L15
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_xx:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $10,%ebx
jmp .L16
.L17:
movl %ebx,%eax
cltd
movl $10,%ecx
idivl %ecx
cmpl %edx,%eax
jne .L18
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
.L18:
addl $1,%ebx
.L16:
cmpl $99,%ebx
jle .L17
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_xzx:
pushl %ebp
movl %esp,%ebp
pushl %ebx
pushl %esi
pushl %edi
movl $100,%ebx
jmp .L19
.L20:
movl %ebx,%eax
cltd
movl $10,%ecx
idivl %ecx
movl %edx,%esi
cltd
idivl %ecx
movl %eax,%edi
cmpl %esi,%edi
jne .L21
pushl %ebx
pushl $.LC0
call printf
addl $8,%esp
.L21:
addl $1,%ebx
.L19:
cmpl $999,%ebx
jle .L20
popl %edi
popl %esi
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_5x:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L22
.L23:
movl %ebx,%eax
imull $5,%eax
pushl %eax
pushl $.LC0
call printf
addl $8,%esp
addl $1,%ebx
.L22:
cmpl $100,%ebx
jle .L23
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
//int f(int x)
f:
pushl %ebp
movl %esp,%ebp
movl 8(%ebp),%eax
imull 8(%ebp),%eax
addl 8(%ebp),%eax
addl $1,%eax
movl %ebp,%esp
popl %ebp
ret
print_1_10:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $-10,%ebx
jmp .L24
.L25:
pushl %ebx
call f
addl $4,%esp
pushl %eax
pushl $.LC0
call printf
addl $8,%esp
addl $1,%ebx
.L24:
cmpl $10,%ebx
jle .L25
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_rand:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $1,%ebx
jmp .L26
.L27:
call rand
cltd
movl $100,%ecx
idivl %ecx
pushl %edx
pushl $.LC0
call printf
addl $8,%esp
addl $1,%ebx
.L26:
cmpl $100,%ebx
jle .L27
pushl $'\n'
call putchar
addl $4,%esp
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_o:
pushl %ebp
movl %esp,%ebp
pushl %ebx
pushl %esi
pushl %edi
movl $0,%esi
movl $0,%edi
movl $1,%ebx
jmp .L28
.L29:
call rand
cltd
movl $100,%ecx
idivl %ecx
andl $1,%edx
cmpl $0,%edx
jne .L30
addl $1,%esi
jmp .L31
.L30:
addl $1,%edi
.L31:
pushl %esi
pushl $.LC0
call printf
addl $8,%esp
pushl %edi
pushl $.LC0
call printf
addl $8,%esp
pushl $'\n'
call putchar
addl $4,%esp
addl $1,%ebx
.L28:
cmpl $100,%ebx
jle .L29
popl %edi
popl %esi
popl %ebx
movl %ebp,%esp
popl %ebp
ret
print_char:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl $'a',%ebx
jmp .L31
.L32:
pushl %ebx
call putchar
addl $4,%esp
addl $1,%ebx
.L31:
cmpl $'z',%ebx
jle .L32
popl %ebx
movl %ebp,%esp
popl %ebp
ret