計算機系統(tǒng)基礎(chǔ)試卷_第1頁
計算機系統(tǒng)基礎(chǔ)試卷_第2頁
計算機系統(tǒng)基礎(chǔ)試卷_第3頁
計算機系統(tǒng)基礎(chǔ)試卷_第4頁
計算機系統(tǒng)基礎(chǔ)試卷_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)注意事項:.本試卷適用于2018級軟件工程專業(yè)學(xué)生使用。.本試卷共8頁,滿分100分,答題時間90分鐘。.考試采用開卷形式。題號二三四總分得分得分評卷人一、單項選擇題(在每小題給出的4個選項中,只有一項是正確的,將正確選項的字母標(biāo)號填寫在“單項選擇題答題表”相應(yīng)題號下的|空格中。本大題共10道小題,每小題1分,共10分)單項選擇題答題表 題號12345n6789 10答案一 I IIIII n—mi iiii 108對應(yīng)的十六進(jìn)制形式是(_)。A.5CH B.63HC.6CH D.B4HC語言程序段:shortsi=-8196;unsignedshortusi=si;運行后,usi的值是(__)。A. 57339 B. 57340C. 8196 D. 34572.采用IEEE754單精度浮點數(shù)格式表示-1028的結(jié)果(十六進(jìn)制)是(_)。A. 44808000H B. C4C04000HC. C4808000H D. 44C04000H.若已知inti=12345,floatf=1.2345e3,則在一個32位機器中執(zhí)行下列表達(dá)式時,結(jié)果為“假”的是(__)。A.f==(float)(int)f B.f==(float)(double)fC.i==(int)(double)i D.i==(int)(float)i《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第1頁共8頁.假定某計算機按字節(jié)采用小端方式編址,一個float型變量x的地址為0xffffc000,x=12345678H,則在內(nèi)存單元0xffffc001中存放的二進(jìn)制串是(__)。A.01010110B B.0001001000110100BC.0101B D.00110100B.假設(shè)變量x的位數(shù)為n(n>=8),使得x的最高有效字節(jié)不變,其余各位全變?yōu)?的C語言表達(dá)式為(_)。A.((x&0xFF)<<(n-8))>>(n-8) B.((x&0xFF)>>(n-8))<<(n-8)C.(x>>(n-8))<<(n-8) D.(x<<(n-8))>>(n-8)7.若在一個8位計算機中完成x+2y的運算,假定變量x和y的機器數(shù)用補碼表示為[x]補=44H,卜]補=DCH,則x+2y的機器數(shù)及相應(yīng)的溢出標(biāo)志OF分別是(_)。A.32H、1 B.FCH、1C.FCH、0 D.32H、0.對于IEEE754單精度浮點數(shù)加減運算,只要對階時得到的兩個階之差的絕對值|AE|大于等于(_),就無需繼續(xù)進(jìn)行后續(xù)處理,此時,運算結(jié)果直接取階大的那個數(shù)。A.25 B.128C.127 D.23.假設(shè)R[eax]=0000B160H,R[ebx]=00FF0110H,執(zhí)行指令"imulw%bx”B,通用寄存器的內(nèi)容變化情況為(_)。R[eax]=FFAC7600H,其余不變R[eax]=00007600H,R[dx]=FFACHR[eax]=00BC7600,其余不變R[eax]=00007600H,R[dx]=00BCH10.假定全局?jǐn)?shù)組a的聲明為char*a[8],a的首地址為0x80498c0,i在ECX中,現(xiàn)要將a[i]取到EAX相應(yīng)寬度的寄存器中,則所用的匯編指令是()。mov0x80498c0(,%ecx),%ahmov(0x80498c0,%ecx),%ahmov0x80498c0(,%ecx,4),%eaxmov(0x80498c0,%ecx,4),%eax《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第2頁共8頁得分評卷人二、填空題(將第11?20小題的答案填寫在題目中的橫線上。本大題共10道小題、每小題2分,共20分).程序P在時鐘頻率為2GHz的機器M1機器上需要運行10秒,在具有與M1相同的ISA上的運行時間是6秒。如果P在M2上的CPI是在M1上的CPI的1.5倍,則M2的時鐘頻率至少應(yīng)是(5)GHz。.在采用16位補碼的計算機中,十進(jìn)制數(shù)-2047的機器數(shù)是(—F801 H)。.在IA32計算機中,執(zhí)行C語言的printf("uv=%u\n",(unsignedshort)(-32768);語句后,將在終端顯示uv=(—32768)。.在IA32中,與用補碼表示的十進(jìn)制數(shù)v(v<0)的位模式相同的無符號數(shù)u=(_v+232__)。.處理器中用來保存著最近執(zhí)行的算術(shù)或邏輯指令的狀態(tài)信息的部件稱為(—條件碼寄存器/標(biāo)志寄存器/Flag寄存器)。.匯編語句movq%rdx%rbx的功能是(將rdx的內(nèi)容傳送到rbx)。.Movb(%rdi,%rcx)%al的尋址方式是(變址尋址)。.超標(biāo)量計算機系統(tǒng)中負(fù)責(zé)接收實際程序指令并將所接受的指令轉(zhuǎn)換為一組基本操作(微操作)的部件是( 指令譯碼邏輯/指令譯碼器/譯碼器 )。.鏈接器把編譯器所產(chǎn)生的符號與具體物理內(nèi)存單元聯(lián)系起來的過程稱為(—地址重定位/地址映射—)。.CPU中用來存放正在執(zhí)行指令的部件稱為(―指令寄存器)。得分評卷人[三、計算題(根據(jù)每小題的具體要求,解答第21至第24小題。本大題共4道小題,每小題10分,共40分。).(12分)假設(shè)有兩臺采用2的補碼表示有符號整數(shù)的機器,機器1采用4位整數(shù),機器2采用6位整數(shù)。填寫下表中的空白單元格。intx=-5;unsignedux=x;?Expression4-bitdecimal4-bitbinary6-bitdecimal6-bitbinary最小補碼數(shù)-8100032100000x>>1-311013111101(4(-1))>>2211102111110《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第3頁共8頁21.下表是5位補碼加法的實際例子,填寫表中空白單元格(數(shù)據(jù)采用二進(jìn)制)。情況分為4種:1-正溢出,2-正確正值,3-正確負(fù)值,4-負(fù)溢出。xyx+yx+ty情況[10100][10001][100101][00101]4[11000][11000][110000][10000]3[00010][00101][000111][00111]2[01100][00100][010000][10000]122.一個在32位計算機中運行的C語言程序中對變量設(shè)置了初值,寫出它們對應(yīng)的十六進(jìn)制機器數(shù),要求簡要說明理由。(1)intx=-32768(2)shorty=532(3)unsignedz=65527(4)charc=’A’ (5)floata=-1.75(1)FFFF8000H(1分)-215=-1000000000000000B負(fù)數(shù)符號位為1,int型整數(shù)表示為32位,故機器數(shù)為1…11000000000000000=FFFF8000H(1分)(2)0224H(1分)532=1000010100B,正數(shù)符號位為0,short型整數(shù)表示為16位,故機器數(shù)為0000001000010100=0214H(1分)(3)0000FFF7H(1分)65527=216-1-8=1111111111110111Bunsigned型整數(shù)表示為32位,無符號位(高位補0),故機器數(shù)為0000FFF7H(4)41H(1分)‘A’的ASCII碼是41H,char型表示為8位(1分)(5)BFE00000H(1分)-1.75=-1.11B=-1.11X20,階碼為0+127=01111111B,數(shù)符為1,尾數(shù)小數(shù)部分0.11,所以-1.75表示為10111111111000000000000000000000,用十六進(jìn)制表示為BFE00000H(1分)23.采用IEEE754單精度浮點數(shù),按照對階、尾數(shù)相加、規(guī)格化、舍入、溢出判斷等5個步驟計算0.875+(-33.75)的值。《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第4頁共8頁

(1)將0?875、-33.75轉(zhuǎn)化為二進(jìn)制的機器表示:(3分)x=0.875=0.111B=(1.110…0)2X2-1,y=-33.75=-100001.11B=(-l.00001110…0)X25,用IEEE754標(biāo)準(zhǔn)單精度格式表示為:[x]浮=00111111011000000...0[y]浮=11000010000001110...0用Ex、Ey分別表示[x]浮、[y]浮的階碼,Mx,My分別表示[x]浮、[y]浮的尾數(shù),則有:Ex=01111110Mx=0l.110000000…0,Ey=10000100,My=11.000011100…0,尾數(shù)Mx,My的小數(shù)點前面的左起第1位為符號位,第2位是隱藏位“1”。(2)對階(2分)(AE^k=Ex+[-Ey^k=01111110+01111100=1111l010(mod28)=-6,故Ex向Ey對齊Ex=Ey=10000100,Mx,=00.000001110…0,即將x的尾數(shù)右移6位,符號不變,數(shù)值高位0,隱藏位右移到小數(shù)點后面,并保留最后移出的兩位。(3)尾數(shù)相加(2分)Mb=Mx+My=00.000001110…00+11.000011100…0=11.000001110…000(3)規(guī)格化(1分)所得尾數(shù)已經(jīng)是規(guī)格化的形式(數(shù)值部分最高位為1)。(4)舍入(1分)將結(jié)果的尾數(shù)Mb中最后兩位附加位進(jìn)行舍入得:11.000001110…0(5)溢出判斷(1分)上述階碼計算和調(diào)整過程中,沒有發(fā)生”階碼上溢"和”階碼下溢的問題最終結(jié)果為Eb=10000100,Mb=l(l).000001110…0,即:(-1.00000111)2X25=-32.875得分評卷人四、綜合題(通過分析或計算詳細(xì)解答第25?27小題。本大題共3道小題,每小題10分,共30分)《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第5頁共8頁.假設(shè)某個C語言函數(shù)func的原型聲明如下:voidfunc(int*xptr,int*yptr,int*zptr);函數(shù)func的過程體對應(yīng)的機器級代碼用AT&T匯編形式表示如下:movl 10(%ebp),%eaxmovl 14(%ebp),%ebxmovl 18(%ebp),%ecxmovl (%ebx),%edxmovl (%ecx),%esimovl (%eax),%edimovl %edi,(%ebx)movl %edx,(%ecx)movl %esi,(%eax)解答下列問題:(1)在過程體開始時三個入口參數(shù)對應(yīng)實參所存放的存儲單元地址是什么?(提示:當(dāng)前棧幀底部由幀指針寄存器EBP指示)(2)根據(jù)上述機器級代碼寫出函數(shù)func的C語言代碼。(1)xptr對應(yīng)實參所存放的存儲單元地址:R[ebp]+10;(1分)yptrr對應(yīng)實參所存放的存儲單元地址:R[ebp]+14;(1分)zptr對應(yīng)實參所存放的存儲單元地址:R[ebp]+18。(1分)(2)函數(shù)func的C語言代碼如下:voidfunc(int*xptr,int*yptr,int*zptr)(1分)(inttempx=*xptr;(1分)inttempy=*yptr;(1分)inttempz=*zptr;(1分)TOC\o"1-5"\h\zyptr=tempx; (1分)zptr=tempy; (1分)xptr=tempz; (1分))《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第6頁共8頁

.已知函數(shù)comp的C語言代碼及其過程體對應(yīng)的匯編代碼如圖1所示,C語言的if-else語句對應(yīng)的AT&T匯編代碼結(jié)構(gòu)如圖2所示。給出每條匯編指令的注釋,并說明為什么C代碼只有一個if語句而匯編代碼有兩條條件轉(zhuǎn)移指令。1voidcomp(charx,int*p)1voidcomp(charx,int*p)2(3if(p&&x<0)4*p+=x;5}1movb8(%ebp),%dl2movl12(%ebp),%eax3testl%eax,%eax4je.L15testb$0x80,%dl6je.L17addb%dl,(%eax)8.L1:圖1comp的C語言代碼及其過程體對應(yīng)的匯編代碼c=cond_expr;if(!c)c=cond_expr;if(!c)一gotofhlse」abel;then_statementgotodonefalse_label:else_statementdone:c=cond_expr;if(!c)一gototrue_label;else_statementgotodonetrue_label:then_statementdone:圖2c語言的if-else語句對應(yīng)的AT&T匯編代碼結(jié)構(gòu)匯編指令的注解:(6分)movb8(%ebp),%dl Z/R[dl]-M[R[ebp]+8],Wx送DLmovl 12(%ebp),%eax Z/R[eax]-M[R[ebp]+12],Wp送EAXtestl %eax,%eax Z/R[eax]andR[eax],判斷p是否為0je.L1〃若p為0,則轉(zhuǎn).L1執(zhí)行testb$0x80,%dl//R[dl]and80H,判斷x的第一位是否為0je.L1//若x>=0,則轉(zhuǎn).L1執(zhí)行addb%dl,(%eax) //M[R[eax]]-M[R[eax]]+R[dl],即*p+=x.L1:因為C語言if語句中的條件表達(dá)式可以對多個條件進(jìn)行邏輯運算,而匯編代碼中一條指令只能進(jìn)行一種邏輯運算,并且在每條邏輯運算指令生成的標(biāo)志都是存放在同一個EFLAGS寄存器中,所以,最好在一條邏輯指令后跟一條條件轉(zhuǎn)移指令,把EFLAGS中標(biāo)志用完,然后再執(zhí)行另一次邏輯判斷并根據(jù)條件進(jìn)行轉(zhuǎn)移的操作。(4分)《計算機系統(tǒng)基礎(chǔ)》試卷(編號:A)第7頁共8頁

.圖3a與圖3b分別表示了一個C語言程序的兩個源文件main.c與procl.c的內(nèi)容。試分析回答:(1)main.c與procl.c中出現(xiàn)的符號哪些是強符號?哪些是弱符號?各變量的存儲空間分配在ELF哪個節(jié)中?各占幾個字節(jié)?(2)程序執(zhí)行后的打印結(jié)果是什么?分別畫出執(zhí)行第7行的proc1()函數(shù)調(diào)用前、后,在地址&x和&z中存放的內(nèi)容。doublex;voidproc1()doublex;voidproc1()(x=-2.5;}unsignedx=3527;shorty,z=120;voidproc1(void);voidmain()(proc1();printf("x=%u,z=%d\n",x, z)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論