Notes from class: ---------------------------------------- Slide 3 E i *(&E[i]+i) E[2*i] movl (%edx, %ecx, 8), %eax ---------------------------------------- Slide 4 Address of S[] is xS, in %edx Value i in %ecx S+1 short* xS+2 leal 2(%edx),%eax S[3] short M[xS+6] movw 6(%edx),%ax &S[i] short* xS+(i*2) leal (%edx, %ecx, 2), %eax S[4*i+1] short M[xS+(8*i)+2] movw 2(%edx, %ecx, 8), %ax S+i-5 short* xS+(2*i)-10 leal -10(%edx, %ecx, 2), %eax ---------------------------------------- Slide 6 int A[4][3]; typedef int a3[3]; a3 A[4]; ---------------------------------------- Slide 10 N = 7 int matrix1[M][N]; matrix1 + (i*7+j)*4; matrix1[i][j]; using matrix2 ... M = 5 ---------------------------------------- Slide 15 void fix_set_diag(fix_matrix A, int val) { int i; int *pA = &A[0][0]; for (i = 0; i < N; i++, p += 16+1) *p = val; } void fix_set_diag(fix_matrix A, int val) { int i; int *pA = &A[0][0], *pAend = pa + N*(16+1); for (; p < pAend; p += 16+1) *p = val; }