69,382
社区成员
发帖
与我相关
我的任务
分享
.file "test.c"
.section .rdata,"dr"
LC0:
.ascii "%d,%d,%d,%d\12 \0"
。。。。。。
。。。。。。
leal -32(%ebp), %eax //得到数组a的首地址也就相当于a
subl $72, %esp //分配数组和参数的空间
movl %eax, 16(%esp) //printf的第五个参数&a[0]
movl %eax, 12(%esp) //printf的第四个参数a
movl %eax, 8(%esp) //printf的第三个参数&a
movl $1, %eax //*a的结果存入
movl $1, -32(%ebp) //a[0] = 1
movl $2, -28(%ebp) //a[1] = 2
movl $1, -24(%ebp) //b[0] = 1
movl $2, -20(%ebp) //b[1] = 2
movl $3, -16(%ebp) //b[2] = 3
movl $4, -12(%ebp) //b[3] = 4
movl %eax, 4(%esp) //printf的第二个参数*a
movl $LC0, (%esp) //printf的第一个参数 串"%d,%d,%d,%d\12 \0"
call _printf //调用printf
movl $LC0, (%esp) //printf的第一个参数 串"%d,%d,%d,%d\12 \0"
leal -24(%ebp), %eax //&b[0] 存入
movl %eax, 16(%esp) //printf的第五个参数&b[0]
movl %eax, 12(%esp) //printf的第四个参数b
movl %eax, 8(%esp) //printf的第三个参数&b
movl %eax, 4(%esp) //printf的第二个参数*b
call _printf //调用printf