我有一个 3D 数组,我想处理 say c[l][i][k]
..的值
- c在该位置
16(%ebp)
- 我在
-24(%ebp)
- 我在
-20(%ebp)
- k 在
-12(%ebp)
数组大小为[20][20][20]
这个的汇编代码是
movl -24(%ebp), %eax #eax <-- l
imull $1600, %eax, %eax #eax <--1600*l
movl %eax, %ecx #ecx <--1600*l
addl 16(%ebp), %ecx #ecx <--1600*l + c
movl -20(%ebp), %edx #edx <-- i
movl %edx, %eax #eax <-- i
sall $2, %eax
addl %edx, %eax
sall $2, %eax
addl -12(%ebp), %eax
movl -8(%ebp), %edx
movl %edx, (%ecx,%eax,4)
- 这里每个汇编代码行的意义是什么?
- 我们如何真正获得价值
c[l][i][k]
? - 还有这条线
movl %edx, (%ecx,%eax,4)
在做什么?