# include<stdio.h>
# define N 3
void convert (int element [N][N]);
void main()
{
int array[N][N];
int i,j;
printf("输入数组元素:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
printf("\n数组是:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
convert(array);
printf("\n转置数组是:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
}
void convert(int element[N][N])
{
int i,j,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{
t=element[i][j];
element[i][j]=element[j][i];
element[j][i]=t;
}
}
.file "026.c"
.def ___main; .scl 2; .type 32; .endef
.text
LC0:
.ascii "\312\344\310\353\312\375\327\351\324\252\313\330\243\272\12\0"
LC1:
.ascii "%d\0"
LC2:
.ascii "\12\312\375\327\351\312\307\243\272\12\0"
LC3:
.ascii "%5d\0"
LC4:
.ascii "\12\0"
LC5:
.ascii "\12\327\252\326\303\312\375\327\351\312\307\243\272\12\0"
.align 2
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl %esp, %ebp
subl $72, %esp
andl $-16, %esp
movl $0, %eax
movl %eax, -68(%ebp)
movl -68(%ebp), %eax
call __alloca
call ___main
subl $12, %esp
pushl $LC0
call _printf
addl $16, %esp
movl $0, -60(%ebp)
L4:
cmpl $2, -60(%ebp)
jle L7
jmp L5
L7:
movl $0, -64(%ebp)
L8:
cmpl $2, -64(%ebp)
jle L11
jmp L6
L11:
subl $8, %esp
movl -60(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -64(%ebp), %eax
leal 0(,%eax,4), %edx
leal -56(%ebp), %eax
leal (%eax,%edx), %eax
pushl %eax
pushl $LC1
call _scanf
addl $16, %esp
leal -64(%ebp), %eax
incl (%eax)
jmp L8
L6:
leal -60(%ebp), %eax
incl (%eax)
jmp L4
L5:
subl $12, %esp
pushl $LC2
call _printf
addl $16, %esp
movl $0, -60(%ebp)
L12:
cmpl $2, -60(%ebp)
jle L15
jmp L13
L15:
movl $0, -64(%ebp)
L16:
cmpl $2, -64(%ebp)
jle L19
jmp L17
L19:
subl $8, %esp
movl -60(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -64(%ebp), %eax
pushl -56(%ebp,%eax,4)
pushl $LC3
call _printf
addl $16, %esp
leal -64(%ebp), %eax
incl (%eax)
jmp L16
L17:
subl $12, %esp
pushl $LC4
call _printf
addl $16, %esp
leal -60(%ebp), %eax
incl (%eax)
jmp L12
L13:
subl $12, %esp
leal -56(%ebp), %eax
pushl %eax
call _convert
addl $16, %esp
subl $12, %esp
pushl $LC5
call _printf
addl $16, %esp
movl $0, -60(%ebp)
L20:
cmpl $2, -60(%ebp)
jle L23
jmp L3
L23:
movl $0, -64(%ebp)
L24:
cmpl $2, -64(%ebp)
jle L27
jmp L25
L27:
subl $8, %esp
movl -60(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -64(%ebp), %eax
pushl -56(%ebp,%eax,4)
pushl $LC3
call _printf
addl $16, %esp
leal -64(%ebp), %eax
incl (%eax)
jmp L24
L25:
subl $12, %esp
pushl $LC4
call _printf
addl $16, %esp
leal -60(%ebp), %eax
incl (%eax)
jmp L20
L3:
leave
ret
.align 2
.globl _convert
.def _convert; .scl 2; .type 32; .endef
_convert:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $12, %esp
movl $0, -8(%ebp)
L29:
cmpl $2, -8(%ebp)
jle L32
jmp L28
L32:
movl -8(%ebp), %eax
incl %eax
movl %eax, -12(%ebp)
L33:
cmpl $2, -12(%ebp)
jle L36
jmp L31
L36:
movl -8(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -12(%ebp), %eax
leal 0(,%eax,4), %edx
movl 8(%ebp), %eax
movl (%eax,%edx), %eax
movl %eax, -16(%ebp)
movl -8(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -12(%ebp), %eax
leal 0(,%eax,4), %ebx
movl 8(%ebp), %ecx
movl -12(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -8(%ebp), %eax
leal 0(,%eax,4), %edx
movl 8(%ebp), %eax
movl (%eax,%edx), %eax
movl %eax, (%ecx,%ebx)
movl -12(%ebp), %edx
movl %edx, %eax
addl %eax, %eax
addl %edx, %eax
addl -8(%ebp), %eax
leal 0(,%eax,4), %ecx
movl 8(%ebp), %edx
movl -16(%ebp), %eax
movl %eax, (%edx,%ecx)
leal -12(%ebp), %eax
incl (%eax)
jmp L33
L31:
leal -8(%ebp), %eax
incl (%eax)
jmp L29
L28:
addl $12, %esp
popl %ebx
popl %ebp
ret
.def _convert; .scl 2; .type 32; .endef
.def _scanf; .scl 2; .type 32; .endef
.def _printf; .scl 2; .type 32; .endef