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


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]*4+8]
     D.R[edx]←M[R[esi]+R[edx]*4+8]

4.設SignExt[x]表示對x符號擴展,ZeroExt[x]表示對x零擴展。IA-32中指令"movswl %cx, -20(%ebp)"的功能是( )。

     A.M[R[ebp]-20]←SignExt[R[cx]]
     B.R[cx]←SignExt [M[R[ebp]-20]]
     C.M[R[ebp]-20]←ZeroExt[R[cx]]
     D.R[cx]←ZeroExt [M[R[ebp]-20]]

5.假設 R[ax]=FFE8H,R[bx]=7FE6H,執行指令"subw %bx, %ax"后,寄存器的內容和各標志的變化為( )。

     A.R[ax]=8002H,OF=0,SF=1,CF=0,ZF=0
     B.R[bx]=8002H,OF=0,SF=1,CF=0,ZF=0
     C.R[ax]=8002H,OF=1,SF=1,CF=0,ZF=0
     D.R[bx]=8002H,OF=1,SF=1,CF=0,ZF=0

6.假設R[eax]=0000B160H,R[ebx]=00FF0110H,執行指令"imulw %bx"后,通用寄存器的內容變化為( )。

     A.R[eax]=00007600H,R[dx]=00BCH
     B.R[eax]=FFAC7600H,其余不變
     C.R[eax]=00BC7600,其余不變
     D.R[eax]=00007600H,R[dx]=FFACH

7.假設short型變量x被分配在寄存器AX中,若R[ax]=FF70H,則執行指令"salw $2, %ax"后,變量x的機器數和真值分別是( )。

     A.FDC3H,-573
     B.FDC0H,-576
     C.FFDCH,-36
     D.3FDC,16348

8.程序P中有兩個變量i和j,被分別分配在寄存器EAX和EDX中,P中語句“if (i<j) { …}”對應的指令序列如下(左邊為指令地址,中間為機器代碼,右邊為匯編指令):
804846a 39 c2 cmpl %eax, %edx
804846c 7e 0d jle xxxxxxxx
若執行到804846a處的cmpl指令時,i=105,j=100,則jle指令執行后將會轉到( )處的指令執行。

     A.804847b
     B.804846e
     C.8048461
     D.8048479

9.以下關於x87 FPU浮點處理指令系統的敘述中,錯誤的是( )。

     A.float和double型數據從主存裝入浮點 寄存器時有可能發生舍入,造成精度損失
     B.提供8個80位浮點寄存器ST(0)~ST(7),采用棧 結構,棧頂為ST(0)
     C.float、double和long double三種類型數據都 按80位格式存放在浮點寄存器中
     D.float、double和long double型數據存入主存 時,分別占32位、64位和96位

10.以下關於MMX/SSE指令集的敘述中,錯誤的是( )。

     A.MMX/SSE指令集和IA-32指令集共用同 一套通用寄存器
     B.同一個微處理器同時支持IA-32指令集與MMX/SSE指令集
     C.SSE指令是一種采用SIMD(單指令多數據)技 術的數據級並行指令
     D.目前SSE支持128位整數運算或同時並行處理兩個64位雙精度浮點數


免責聲明!

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



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