# 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 $7 2, %esp
andl $- 16 , %esp
movl $0 , %eax
movl %eax , -68 (%ebp )
movl -68 (%ebp ), %eax
call __alloca
call ___main
subl $1 2, %esp
pushl $LC0
call _printf
addl $1 6, %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 $1 6, %esp
leal -64 (%ebp ), %eax
incl (%eax )
jmp L8
L6:
leal -60 (%ebp ), %eax
incl (%eax )
jmp L4
L5:
subl $1 2, %esp
pushl $LC2
call _printf
addl $1 6, %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 $1 6, %esp
leal -64 (%ebp ), %eax
incl (%eax )
jmp L16
L17:
subl $1 2, %esp
pushl $LC4
call _printf
addl $1 6, %esp
leal -60 (%ebp ), %eax
incl (%eax )
jmp L12
L13:
subl $1 2, %esp
leal -56 (%ebp ), %eax
pushl %eax
call _convert
addl $1 6, %esp
subl $1 2, %esp
pushl $LC5
call _printf
addl $1 6, %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 $1 6, %esp
leal -64 (%ebp ), %eax
incl (%eax )
jmp L24
L25:
subl $1 2, %esp
pushl $LC4
call _printf
addl $1 6, %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 $1 2, %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 $1 2, %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