計算機系統基礎(一):程序的表示、轉換與鏈接(第八周小測驗)


1.假定全局short型數組a的起始地址為0x804908c,則a[2]的地址是( )。

     A.0x8049092
     B.0x8049094
     C.0x8049090
     D.0x804908e

2.假定全局數組a的聲明為char *a[8],a的首地址為0x80498c0,i 在ECX中,現要將a[i]取到EAX相應寬度的寄存器中,則所用的匯編指 令是( )。

     A.mov (0x80498c0, %ecx, 4), %eax
     B.mov (0x80498c0, %ecx), %ah
     C.mov 0x80498c0( , %ecx), %ah
     D.mov 0x80498c0( , %ecx, 4), %eax

3.假定全局數組a的聲明為double *a[8],a的首地址為0x80498c0,i 在ECX中,現要將a[i]取到EAX相應寬度的寄存器中,則所用的匯編 指令是( )。

     A.mov 0x80498c0( , %ecx, 4), %eax 0.50/0.50
     B.mov (0x80498c0, %ecx, 8), %eax
     C.mov (0x80498c0, %ecx, 4), %eax
     D.mov 0x80498c0( , %ecx, 8), %eax

4.假定局部數組a的聲明為int a[4]={0, -1, 300, 20},a的首地址為R[ebp]-16,則將a的首地址取到EDX的匯編指令是( )。

     A.leal -16(%ebp), %edx
     B.leal -16(%ebp, 4), %edx
     C.movl -16(%ebp, 4), %edx
     D.movl -16(%ebp ), %edx

5.某C語言程序中有以下兩個變量聲明:

	int  a[10];
	int  *ptr=&a[0];

則ptr+i的值為( )。

     A.&a[0]+4
     B.&a[0]+8
     C.&a[0]+2
     D.&a[0]+i

6.假定靜態short型二維數組b的聲明如下:

static short b[2][4]={ {2, 9, -1, 5}, {3, 8, 2, -6}};

若b的首地址為0x8049820,則按行優先存儲方式下,數組元素"8"的地址是( )。

     A.0x804982a
     B.0x8049825
     C.0x8049824
     D.0x8049828

7.假定靜態short型二維數組b和指針數組pb的聲明如下:

static short b[2][4]={ {2, 9, -1, 5}, {3, 1, -6, 2 }};
static short *pb[2]={b[0], b[1]};

若b的首地址為0x8049820,則pb[1]的值是( )。

     A.0x8049820
     B.0x8049824
     C.0x8049822
     D.0x8049828

8.假定靜態short型二維數組b和指針數組pb的聲明如下:

static short b[2][4]={ {2, 9, -1, 5}, {3, 1, -6, 2 }};
static short *pb[2]={b[0], b[1]};

若b的首地址為0x8049820,則&pb[1]的值是( )。

     A.0x8049834
     B.0x8049832
     C.0x8049830
     D.0x8049838

9.假定結構體類型cont_info的聲明如下:

struct cont_info {
	char id[8];
	char name [16];
	unsigned post;
	char address[100];
	char phone[20];
} ;

若結構體變量x初始化定義為struct cont_info x={"00000010", "ZhangS", 210022, "273 long street, High Building #3015", "12345678"},x的首地址在EDX中,則"unsigned xpost=x.post;"對應匯編指令為( )。

     A.leal 0x24(%edx), %eax
     B.movl 0x24(%edx), %eax
     C.movl 0x18(%edx), %eax
     D.leal 0x18(%edx), %eax

10.以下是關於IA-32處理器對齊方式的敘述,其中錯誤的是( )。

     A.總是按其數據寬度進行對齊,例如,double型變量的地址總是8的倍數
     B.不同操作系統采用的對齊策略可能不同
     C.對於同一個struct型變量,在不同對齊方式下可能會占用不同大小的存儲區
     D.可以用編譯指導語句(如#pragma pack)設置對齊方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM