int a[100][100];
main() {
int size;
scanf("%d",&size);
motion(size);
}
motion(int n) {
int i,j,k;
for (i=0;i<100;i++){
k = i*(n+2);
for (j=0;j<100;j++)
a[i][j] = 100*n + 10*k + j;
}
}
Things to note in the output below:
OUTPUT:
.file "motion2.c"
.text
.globl motion
.type motion, @function
motion:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
movl 8(%ebp), %eax
leal 10(%eax,%eax,4), %edx
leal (%edx,%edx), %edi
imull $100, %eax, %ebx
movl $0, %esi
.L2:
imull $400, %esi, %eax
leal a(%eax), %ecx
movl $0, %edx
.L3:
leal (%ebx,%edx), %eax
movl %eax, (%ecx)
addl $1, %edx
addl $4, %ecx
cmpl $100, %edx
jne .L3
addl $1, %esi
addl %edi, %ebx
cmpl $100, %esi
jne .L2
popl %ebx
popl %esi
popl %edi
popl %ebp
ret
.size motion, .-motion
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "%d"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $36, %esp
leal -8(%ebp), %eax
movl %eax, 4(%esp)
movl $.LC0, (%esp)
call scanf
movl -8(%ebp), %eax
movl %eax, (%esp)
call motion
addl $36, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret