如何在汇编中使用2d数组?我在C中声明了int array[100][2]
,我希望在汇编
array[4][0]
答案 0 :(得分:0)
在C中,
array[i][j]
与:
相同*(*(array + i) + j)
在C中添加指针时,它会自动考虑指向的类型的大小。这不是汇编的情况,所以你必须自己做。
基本公式只是:
(offsetof(array) + (sizeof(int) * i)) + (sizeof(int) * j)
由于int
几乎肯定是4个字节,因此程序集相当于:
int temp = array[4][0];
将是:
mov eax, DWORD PTR [array+16]
因为(4 * 4)+(0 * 4)== 16。