1.某C语言程序中对数组变量b的声明为“int b[10][5];”,有一条for语句如下:
for (i=0; i<10, i++)
for (j=0; j<5; j++)
sum+= b[i][j];
假设执行到"sum+= b[i][j];"时,sum的值在EAX中,b[i][0]所在的地址在EDX中,j在ESI中,则"sum+= b[i][j];"所对应的指令(AT&T格式)可以是( )。
A.addl 0(%esi, %edx, 2), %eax
B.addl 0(%esi, %edx, 4), %eax
C.addl 0(%edx, %esi, 2), %eax
D.addl 0(%edx, %esi, 4), %eax
2.IA-32中指令"popl %ebp"的功能是( )。
A.R[esp]←R[esp]-4,R[ebp]←M[R[esp]]
B.R[ebp]←M[R[esp]],R[esp]←R[esp]+4
C.R[esp]←R[esp]+4,R[ebp]←M[R[esp]]
D.R[ebp]←M[R[esp]],R[esp]←R[esp]-4
3.IA-32中指令"movl 8(%edx, %esi, 4), %edx"的功能是( )。
A.M[R[edx]+R[esi]*4+8]←R[edx]
B.M[R[esi]+R[edx]*4+8]←R[edx]
C.R[edx]←M[R[edx]+R[esi]*