《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案_第1頁(yè)
《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案_第2頁(yè)
《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案_第3頁(yè)
《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案_第4頁(yè)
《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第頁(yè) 《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷及答案一、選擇題(共20題,40分)1、已知計(jì)算機(jī)A的時(shí)鐘頻率為800MHz,假定某程序在計(jì)算機(jī)A上運(yùn)行需要12s?,F(xiàn)在硬件設(shè)計(jì)人員想設(shè)計(jì)計(jì)算機(jī)B,希望該程序在B上的運(yùn)行時(shí)間能縮短為8s,使用新技術(shù)后

可使B的時(shí)鐘頻率大幅度提高,但在B上運(yùn)行該程序所需的時(shí)鐘周期數(shù)為在A上的1.5倍。那么,機(jī)器B的時(shí)鐘頻率至少應(yīng)為多少才能達(dá)到所希望的要求?(

)A、800MHz

B、1.2GHzC、1.5GHz

D、1.8GHz2、指令集體系結(jié)構(gòu)(ISA)是計(jì)算機(jī)系統(tǒng)中必不可少的一個(gè)抽象層,它是對(duì)硬件的抽象,軟件通過(guò)它所規(guī)定的指令系統(tǒng)規(guī)范來(lái)使用硬件。以下有關(guān)ISA的敘述中,錯(cuò)誤的是()。A、ISA規(guī)定了所有指令的集合,包括指令格式和操作類型B、寄存器的功能與編號(hào)不屬于指令集體系結(jié)構(gòu)的內(nèi)容C、ISA規(guī)定了指令獲取操作數(shù)的方式,即尋址方式D、ISA規(guī)定了指令的操作數(shù)類型、寄存器結(jié)構(gòu)、存儲(chǔ)空間大小、編址方式和大端/小端方式3、以下有關(guān)馮?諾依曼計(jì)算機(jī)結(jié)構(gòu)中指令和數(shù)據(jù)表示形式的敘述中,正確的是()。A、指令和數(shù)據(jù)可以從形式上加以區(qū)分B、指令以二進(jìn)制形式存放,數(shù)據(jù)以十進(jìn)制形式存放C、指令和數(shù)據(jù)都以二進(jìn)制形式存放D、指令和數(shù)據(jù)都以十進(jìn)制形式存放4、以下給出了改善計(jì)算機(jī)性能的4種措施:①用更快的處理器來(lái)替換原來(lái)的慢速處理器;②增加同類處理器個(gè)數(shù),使得不同的處理器同時(shí)執(zhí)行程序;③優(yōu)化編譯生成的代碼使得程序執(zhí)行的總時(shí)鐘周期數(shù)減少;④減少指令執(zhí)行過(guò)程中訪問(wèn)內(nèi)存的時(shí)間。對(duì)于某個(gè)特定的程序,以上措施中,能縮短其執(zhí)行時(shí)間的措施是()。A、僅①和②和③B、僅①和②和④C、僅①和③和④

D、全部5、“北”的區(qū)位碼是1717,那么,其機(jī)內(nèi)碼是()。A、B1B1HB、1717HC、9797HD、3737H6、假定兩種浮點(diǎn)數(shù)表示格式的位數(shù)都是32位,但格式1的階碼長(zhǎng)、尾數(shù)短,格式2的階碼短、尾數(shù)長(zhǎng),其他所有規(guī)定都相同,則它們可表示的數(shù)的精度和范圍為()。A、兩者可表示的數(shù)的范圍和精度均相同B、格式1可表示的數(shù)的范圍更小,但精度更高C、格式2可表示的數(shù)的范圍更小,但精度更高D、格式1可表示的數(shù)的范圍更大,且精度更高7、若兩個(gè)float型變量(用IEEE754單精度浮點(diǎn)格式表示)x和y的機(jī)器數(shù)分別表示為x=40E80000H,y=C2040000H,則在計(jì)算x+y時(shí),第一步對(duì)階操作的結(jié)果[△E]補(bǔ)為(

)。A、00000111B、00000011C、11111011D、1111

11018位補(bǔ)碼定點(diǎn)整數(shù)10010101算數(shù)右移一位后的值為()。A、01001010

B、01001011C、10001010D、110010109、[X]補(bǔ)碼=X0X1X2…Xn,(n為整數(shù)),它的模是(

)。A、2n+lB、2nC、2n+1D、2n-110、IA-32中指令“movl24(%ebp),%edx”的功能是()。A、M[R[ebp]+24]←R[edx]B、

R[edx←M[R[ebp]+24]C、R[ebp]+24←R[edx]D、R[edx]←R[ebp]+2411、以下有關(guān)IA-32的過(guò)程調(diào)用方式的敘述中,錯(cuò)誤的是(

)。A、入口參數(shù)使用棧(stack)傳遞,即所傳遞的實(shí)參被分配在棧中B、返回地址是CALL指令下一條指令的地址,被保存在棧中C、EAX,ECX和EDX都是調(diào)用者保存寄存器D、EBX、ESI、EDI、EBP和ESP都是被調(diào)用者保存寄存器12、假設(shè)P為調(diào)用過(guò)程,Q為被調(diào)用過(guò)程,程序在IA-32處理器上執(zhí)行,以下有關(guān)過(guò)程調(diào)用的敘述中,錯(cuò)誤的是()。A、C語(yǔ)言程序中的函數(shù)調(diào)用就是過(guò)程調(diào)用B、從P傳到Q的實(shí)參無(wú)需重新分配空間存放C、從P跳轉(zhuǎn)到Q執(zhí)行應(yīng)使用CALL指令D、從Q跳回到P執(zhí)行應(yīng)使用RET指令13、1intadd(intx,inty)2{3returnx+y;4}5intcaller()7{8intt1=100;9intt2=200;10intsum=add(t1,t2);11returnsum;12}其中,caller函數(shù)對(duì)應(yīng)的機(jī)器級(jí)代碼如下:1pushl

%ebp2movl

%esp,%ebp3subl$24,%esp4movl$100,-12(%ebp)5movl$200,-8(%ebp)6movl-8(%ebp),%eax7movl%eax,4(%esp)8movl-12(%ebp),%eax9movl%eax,(%esp)10calladd

11movl%eax,-4(%ebp)12movl-4(%ebp),%eax13leave14ret以下敘述中錯(cuò)誤的是()。A、執(zhí)行第10條指令的過(guò)程中,將會(huì)把第11條指令的地址壓入棧頂B、執(zhí)行第11條指令時(shí),add函數(shù)的返回值已經(jīng)在EAX寄存器中C、變量sum的有效地址為R[ebp]-4D、leave指令用于恢復(fù)EBP的舊值,并不會(huì)改變ESP的內(nèi)容14、假定局部數(shù)組a的聲明為inta[4]={0,-1,300,20},a的首地址為R[ebp]-16,則將a的首地址取到EDX的匯編指令是(

)。A、movl-16(%ebp),%edxB、movl-16(%ebp,4),%edxC、leal-16(%ebp),%edx.D、leal-16(%ebp,4),%edx.15、以下有關(guān)重定位信息的敘述中,錯(cuò)誤的是()。A、重定位信息是由編譯器在生成匯編指令時(shí)產(chǎn)生的B、指令中的重定位信息在可重定位目標(biāo)文件的.rel.text節(jié)中C、數(shù)據(jù)中的重定位信息在可重定位目標(biāo)文件的.rel.data節(jié)中D、重定位信息包含需要重定位的位置、綁定的符號(hào)和重定位類型16、假設(shè)調(diào)用關(guān)系如下:func1.o→func2.o,func1.o→libx.a中的函數(shù),func2.o→libx.a中的函數(shù),libx.a→liby.a同時(shí)liby.a→libx.a,則以下命令行中,能夠正確進(jìn)行靜態(tài)鏈接的命令是(

)。A、gcc-static-omyfuncfuncl.ofunc2.olibx.aliby.alibx.aB、gcc-static-omyfuncfunc2.ofuncl.oliby.alibx.aliby.aC、gcc-static-omyfunclibx.aliby.alibx.afuncl.ofunc2.oD、gcc-static-omyfuncliby.alibx.aliby.afuncl.ofunc2.o17、以下給定的情況中,不會(huì)引起指令流水線阻塞的是()。A、外部中斷B、指令數(shù)據(jù)相關(guān)C、執(zhí)行空操作指令D、條件轉(zhuǎn)移18、下列有關(guān)CPU時(shí)鐘信號(hào)的敘述中,錯(cuò)誤的是()。A、處理器總是每來(lái)一個(gè)時(shí)鐘信號(hào)就開(kāi)始執(zhí)行一條新的指令B、邊沿觸發(fā)指狀態(tài)單元總在時(shí)鐘上升沿或下降沿開(kāi)始改變狀態(tài)C、時(shí)鐘周期以相鄰狀態(tài)單元之間最長(zhǎng)組合邏輯延遲為基準(zhǔn)確定D、每個(gè)時(shí)鐘周期稱為一個(gè)節(jié)拍,機(jī)器的主頻就是時(shí)鐘周期的倒數(shù)19、在存儲(chǔ)器分層體系結(jié)構(gòu)中,存儲(chǔ)速度按從慢到快的排列順序是()。A、主存→輔存→cache→寄存器B、輔存→cache→主存→寄存器C、輔存→主存→cache→寄存器D、輔存→主存→寄存器→cache20、相聯(lián)存儲(chǔ)器是按()進(jìn)行尋址訪問(wèn)的存儲(chǔ)器。A、地址指定方式B、內(nèi)容指定方式C、堆棧訪問(wèn)方式D、隊(duì)列訪問(wèn)方式二、簡(jiǎn)答題(共5題,28分)1、(6分)假定執(zhí)行某種指令I(lǐng)需要20個(gè)時(shí)鐘周期,該指令在程序中的出現(xiàn)頻度為10%,其他所有指令的平均CPI為5。(1)CPU執(zhí)行指令I(lǐng)所用時(shí)間占整個(gè)CPU時(shí)間的百分比是多少?(2)如果通過(guò)對(duì)硬件進(jìn)行改進(jìn),能使指令I(lǐng)的執(zhí)行時(shí)間縮短為10個(gè)時(shí)鐘周期,但同時(shí)會(huì)使CPU時(shí)鐘周期延長(zhǎng)10%,你認(rèn)為是否應(yīng)該采取這種改進(jìn)措施?

2、(4分)下面程序用來(lái)統(tǒng)計(jì)數(shù)組中元素之和,當(dāng)參數(shù)len為0時(shí),返回值應(yīng)該是0,但是在機(jī)器上執(zhí)行時(shí),會(huì)發(fā)生訪存異常。(1)請(qǐng)你解釋這種情況。(2)如何修改,才能避免上述問(wèn)題。sum(inta[],unsignedlen){inti,sum=0;for(i=0;i<=len–1;i++)

sum+=a[i];returnsum;}3、(6分)假定某計(jì)算機(jī)存儲(chǔ)器按字節(jié)編址,CPU從存儲(chǔ)器中讀出一個(gè)4字節(jié)信息D=32343538H,該信息的內(nèi)存地址為0000F00CH,按小端方式存放,請(qǐng)回答下列問(wèn)題。(1)該信息D占用了幾個(gè)內(nèi)存單元?這幾個(gè)內(nèi)存單元的地址及其內(nèi)容各是什么?(2)若D是一個(gè)32位補(bǔ)碼表示的帶符號(hào)整數(shù),則其值是多少?(3)若D是一個(gè)IEEE754單精度浮點(diǎn)數(shù),則其值是多少?4、(6分)對(duì)于以下AT&T格式匯編指令,根據(jù)操作數(shù)的長(zhǎng)度確定對(duì)應(yīng)指令助記符中的長(zhǎng)度后綴,說(shuō)明每個(gè)源操作數(shù)的尋址方式,并說(shuō)明每條指令的功能是什么?(1)mov

8(%ebp,%ebx,4),%ax(2)lea

8(%ebx,%esi),%eax(3)or

(%ebx),%dh5、(6分)假定在MIPS典型的5級(jí)流水線處理器中,各主要功能部件的操作時(shí)間如下:存儲(chǔ)器——200ps;ALU和加法器——150ps;寄存器堆讀口和寫(xiě)口——50ps。請(qǐng)回答下列問(wèn)題:(1)若執(zhí)行階段EX所用的ALU操作時(shí)間縮短20%,則能否加快流水線執(zhí)行速度?如果能,能加快多少?如果不能,請(qǐng)給岀理由。(2)若ALU操作時(shí)間延長(zhǎng)20%,對(duì)流水線的性能有何影響?(3)若ALU操作時(shí)間延長(zhǎng)40%,對(duì)流水線的性能又有何影響?三、分析題(共4題,32分)1、(8分)假設(shè)某字長(zhǎng)為8位的計(jì)算機(jī)中,帶符號(hào)整數(shù)采用補(bǔ)碼表示,x=-72,y=-90,x和y分別存放在寄存器A和B中。請(qǐng)回答下列問(wèn)題(要求最終用十六進(jìn)制表示二進(jìn)制序列。(1)寄存器A和B中的內(nèi)容分別是什么?(2)若x和y相加后的結(jié)果存放在寄存器C中,則寄存器C中的內(nèi)容是什么?運(yùn)算結(jié)果是否正確?加法器最高位的進(jìn)位Cout是什么?溢出標(biāo)志OF、符號(hào)標(biāo)志SF和零標(biāo)志ZF各是什么?(3)若x和y相減后的結(jié)果存放在寄存器D中,則寄存器D中的內(nèi)容是什么?運(yùn)算結(jié)果是否正確?此時(shí),加法器最高位的進(jìn)位Cout是什么?溢出標(biāo)志OF、符號(hào)標(biāo)志SF和零標(biāo)志ZF各是什么?(4)對(duì)于帶符號(hào)整數(shù)的減法運(yùn)算,能否直接根據(jù)CF的值對(duì)兩個(gè)帶符號(hào)整數(shù)的大小進(jìn)行比較?2、(8分)如下圖所表示,圖a是用遞歸求解整數(shù)1到n之和的代碼,圖b是其對(duì)應(yīng)的匯編代碼;圖c是用循環(huán)方式實(shí)現(xiàn)的代碼,圖d是循環(huán)方式對(duì)應(yīng)的匯編代碼。設(shè)調(diào)用關(guān)系為P—>nn_sum。(1)針對(duì)圖b中對(duì)應(yīng)的指令執(zhí)行過(guò)程,請(qǐng)畫(huà)出執(zhí)行第2次進(jìn)入遞歸調(diào)用時(shí)棧幀的狀態(tài)(即第2次執(zhí)行callnn_sum指令時(shí))。(2)執(zhí)行圖b程序段時(shí),pushl%ebx這條指令的功能是什么?為什么需要執(zhí)行這條指令?(3)執(zhí)行圖d程序段時(shí),局部變量i和result分別被分配在那個(gè)寄存器中?(4)分析程序a和c的執(zhí)行過(guò)程,請(qǐng)說(shuō)明兩種方式的執(zhí)行效率,并給出你的結(jié)論。3、(8分)假設(shè)一個(gè)C語(yǔ)言程序有兩個(gè)源文件:main.c,test.c和Linux存儲(chǔ)器映像如下圖所示,針對(duì)程序的鏈接環(huán)節(jié),請(qǐng)回答下面問(wèn)題:(1)使用鏈接的好處是什么?鏈接的本質(zhì)是什么?test.c中那些符號(hào)是強(qiáng)符號(hào)?那些是弱符號(hào)?(3)對(duì)于編譯生成的可重定位目標(biāo)文件test.o,說(shuō)明下表中的符號(hào)是否出現(xiàn)在test.o的符號(hào)表(.symtab節(jié))中,如果是,定義該符號(hào)的模塊是main.o還是test.o?該符號(hào)的類型是全局、外部,還是本地符號(hào)?該符號(hào)出現(xiàn)在相應(yīng)定義模塊的哪個(gè)節(jié)?并將這些信息填寫(xiě)到下表中。符號(hào)是否再test.o的符號(hào)表中定義模塊符號(hào)類型節(jié)asum(4)對(duì)照Linux存儲(chǔ)器映像圖,請(qǐng)說(shuō)明在程序運(yùn)行時(shí),程序代碼、數(shù)組a、變量count、val,i位于存儲(chǔ)器那個(gè)區(qū)?4、(8分)以下是計(jì)算兩個(gè)向量點(diǎn)積的程序段:floatdotproduct(float

x[8],float

y[8]){

floatsum=0.0;

inti;

for(i=0;i<8;i++)

sum+=x[i]*y[i];

returnsum;}請(qǐng)回答下列問(wèn)題:(1)訪問(wèn)數(shù)組x和y時(shí)的時(shí)間局部性和空間局部性各如何?(2)假定數(shù)據(jù)cache采用直接映射方式,數(shù)據(jù)區(qū)容量為32字節(jié),每個(gè)主存塊大小為16字節(jié);編譯器將變量sum和i分配在寄存器中,數(shù)組x存放在00000040H開(kāi)始的32字節(jié)的連續(xù)存儲(chǔ)區(qū)中,數(shù)組y則緊跟在x后進(jìn)行存放。該程序數(shù)據(jù)訪問(wèn)的命中率是多少?要求說(shuō)明每次訪問(wèn)時(shí)cache的命中情況。(3)將上述(2)中的數(shù)據(jù)cache改用2-路組相聯(lián)映射方式,塊大小改為8字節(jié),其他條件不變,則該程序數(shù)據(jù)訪問(wèn)的命中率是多少?(4)在上述(2)中條件不變的情況下,將數(shù)組x定義為float[12],則數(shù)據(jù)訪問(wèn)的命中率是多少? 《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》期末模擬試卷答案一、單選題(共20題,40分)1~5DBCDA6~10CDDAB11~15DBDCA16~20ACACB二、簡(jiǎn)答題(共5題,28分)1、

(6分)答:(1)

假定CPU執(zhí)行的所有指令條數(shù)為N,時(shí)鐘周期為T(mén),則CPU執(zhí)行總時(shí)間為(20*10%+

5*90%)*N*T,其中指令I(lǐng)所用時(shí)間為20*10%*N*T,因此,CPU執(zhí)行指令I(lǐng)所用時(shí)

間占整個(gè)

CPU

時(shí)間的百分比是(20*10%*

N*

T)/[(20*10%+5*90%)*N*

T]=30.77%。3分如果改進(jìn)后將指令I(lǐng)的執(zhí)行時(shí)間縮短為10個(gè)時(shí)鐘周期,時(shí)鐘周期的長(zhǎng)度延長(zhǎng)10%,則改進(jìn)后CPU執(zhí)行的總時(shí)間為(10*10%+5*90%)*N*1。1

*T=6.05*N*T,改進(jìn)前的總時(shí)間為

(20*10%+5*90%)*N*T=6.5*N*T,因而,改進(jìn)后的性能是改進(jìn)前的6.5/..6.05=1.07倍。

由此可見(jiàn),對(duì)硬件的這種改進(jìn)措施能夠提高CPU的性能。3分2、(4分)

答:(1)len為0時(shí),len-1的結(jié)果為2^32-1,執(zhí)行循環(huán)的比較運(yùn)算時(shí),由于i的值一直小于len-1,會(huì)導(dǎo)致循環(huán)一直執(zhí)行,一旦i的值超過(guò)了數(shù)組的范圍,就會(huì)造成數(shù)組越界訪問(wèn)的錯(cuò)誤。2分(2)應(yīng)該將len的數(shù)據(jù)類型修改為int型,就可以避免以上錯(cuò)誤發(fā)生。2分3、(6分)答:(1)將32343538H展開(kāi)為二進(jìn)制表示為00110010001101000011010100111000B。因?yàn)榇鎯?chǔ)器按字節(jié)編址,所以4個(gè)字節(jié)占用4個(gè)內(nèi)存單元,其地址分別是0000F00CH、0000F00DH、0000F00EH、0000F00FH。由于采用小端方式存放,所以,最低有效字節(jié)38H存放在0000F00CH中,35H存放在0000F00DH中,34H存放在0000F00EH中,32H存放在0000F00FH。(2)補(bǔ)碼整數(shù)。值為2^29+2^28+2^25+2^21+2^20+2^18+2^13+2^12+2^10+2^8+2^5+2^4+2^3。(能夠說(shuō)明存儲(chǔ)的數(shù)據(jù)信息即可,用16進(jìn)制、2進(jìn)制或按照權(quán)值展開(kāi)連加形式均可)(3)

IEEE754單精度浮點(diǎn)數(shù)。根據(jù)IEEE754單精度浮點(diǎn)數(shù)格式可知,符號(hào)位s=0,為正數(shù);階碼e=01100100B=100,故階為100-127=-27;尾數(shù)小數(shù)部分f=0.01101000011010100111000,所以,其值為1.01101000011010100111B×2^-27。4、(6分)(1)后綴:w,源:基址+比例變址+偏移,功能:M[8+R[ebp]+4*R[ebx]]->R[ax];(用RTL語(yǔ)言或用文字描述均可)2分(2)后綴:1,源:基址+變址+偏移,功能:R[ebx]+R[esi]+8->R[eax]

2分(3)后綴:b,源:基址(或變址)功能:M[ebx]|R[dh]->R[dh]

2分5、(6分)

(1)ALU操作時(shí)間縮短20%不能加快流水線指令速度。因?yàn)橹噶盍魉€的執(zhí)行速度取決于最慢的功能部件所用時(shí)間,最慢的是存儲(chǔ)器,只有縮短了存儲(chǔ)器的操作時(shí)間,才可能加快流水線速度。2分

(2)ALU操作時(shí)間延長(zhǎng)20%時(shí),其操作時(shí)間變?yōu)?80ps,比存儲(chǔ)器所用時(shí)間200ps還小.因此,對(duì)流水線性能沒(méi)有影響。2分

(3)ALU操作時(shí)間延長(zhǎng)40%時(shí),其操作時(shí)間變?yōu)?10ps,比存儲(chǔ)器所用時(shí)間200ps大,因此,在不考慮流水段寄存器延時(shí)的情況下,流水線的時(shí)鐘周期從200ps變?yōu)?10ps,流水線執(zhí)行速度降低了(210-200)/200=5%。2分三綜合題(共4題,32分)1、(8分)(1)[-72]補(bǔ)=[-01001000]補(bǔ)=10111000B=B8H,[-90]補(bǔ)=[-01011010]補(bǔ)=10100110B=A6H,所以,寄存器A和B中的內(nèi)容分別是B8H和A6H。2分(2)[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)=10111000B+10100110B=(1)01011110B=5EH,最高位前面的一位1被丟棄,因此,寄存器C中的內(nèi)容為5EH,對(duì)應(yīng)的真值為+94結(jié)果不正確。加法器最高位向前面的進(jìn)位Cout為1。SF=0,表示結(jié)果為正數(shù);因?yàn)榻Y(jié)果不為0,所以零標(biāo)志ZF=0。2分(3)[x-y]補(bǔ)

=[x]補(bǔ)+[-y]補(bǔ)=10111000B+01011010B=(1)00010010B=12H,最高位前面的一位1被丟棄,因此,寄存器D中的內(nèi)容為12H,對(duì)應(yīng)的真值為+18,結(jié)果正確。加法器最高位向前面的進(jìn)位Cout為1結(jié)果的第一位(最高位)0為符號(hào)標(biāo)志位SF,即SF=0,表示結(jié)果為正數(shù);因?yàn)榻Y(jié)果不為0,所以零標(biāo)志ZF=0。2分(4)對(duì)于帶符號(hào)整數(shù)的減法運(yùn)算,無(wú)法直接根據(jù)CF的值判斷兩個(gè)帶符號(hào)整數(shù)的大小。2分2、(8.0)(1)2分(2)pushl

%ebx表示將ebx壓棧,因?yàn)閑bx屬于被調(diào)用者保存寄存器,由于在被調(diào)用時(shí)需要使用ebx寄存去,故保存。2分(3)result被分配子啊eax寄存器,i被分配在edx寄存器。2分(4)循環(huán)方式的過(guò)程體中沒(méi)用到被調(diào)用過(guò)程保存寄存器。因而,該過(guò)程棧幀中僅需保留EBP,即其棧幀僅占用4字節(jié)空間,而遞歸方式則占用了(16n+12)字節(jié)??臻g,多用了(16n+8)字節(jié),每次遞歸調(diào)用都要執(zhí)行16條指令,一共多了n次過(guò)程調(diào)用,因而,遞歸方式比循環(huán)方式至少多執(zhí)行了16n條指令。

由此可以看出,為了提高程序的性能,若能用非遞歸方式執(zhí)行則最好用非遞歸方式。

2分3、(8分)答:(1)模塊化,效率高。鏈接的本質(zhì)就是合并相同的節(jié)。2分(2)強(qiáng)符號(hào):a,val,sum。2分(3)2分符號(hào)是否在test.o的符號(hào)表中定義模塊符號(hào)類型節(jié)a在main.o全局.textsum在test.o全局.data(4)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論