MOOC 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué) 中國(guó)大學(xué)慕課答案_第1頁(yè)
MOOC 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué) 中國(guó)大學(xué)慕課答案_第2頁(yè)
MOOC 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué) 中國(guó)大學(xué)慕課答案_第3頁(yè)
MOOC 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué) 中國(guó)大學(xué)慕課答案_第4頁(yè)
MOOC 計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué) 中國(guó)大學(xué)慕課答案_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

MOOC計(jì)算機(jī)系統(tǒng)基礎(chǔ)(一):程序的表示、轉(zhuǎn)換與鏈接-南京大學(xué)中國(guó)大學(xué)慕課答案第一周小測(cè)驗(yàn)1、問(wèn)題:以下有關(guān)馮.諾依曼結(jié)構(gòu)思想的敘述中,錯(cuò)誤的是()。選項(xiàng):A、計(jì)算機(jī)由運(yùn)算器、存儲(chǔ)器、控制器和I/O設(shè)備組成B、程序由指令構(gòu)成,計(jì)算機(jī)能自動(dòng)執(zhí)行程序中一條一條指令C、指令和數(shù)據(jù)都放在存儲(chǔ)器中,兩者在形式上有差別D、計(jì)算機(jī)內(nèi)部以二進(jìn)制形式表示指令和數(shù)據(jù)正確答案:【指令和數(shù)據(jù)都放在存儲(chǔ)器中,兩者在形式上有差別】2、問(wèn)題:以下有關(guān)指令以及指令執(zhí)行過(guò)程的敘述中,錯(cuò)誤的是()。選項(xiàng):A、指令由操作碼和操作數(shù)或操作數(shù)的地址碼構(gòu)成B、CPU中的控制器對(duì)指令操作碼進(jìn)行譯碼C、指令中指定的操作數(shù)只能是存放在存儲(chǔ)器中的數(shù)據(jù)D、將要執(zhí)行的下條指令的地址總是在程序計(jì)數(shù)器PC中正確答案:【指令中指定的操作數(shù)只能是存放在存儲(chǔ)器中的數(shù)據(jù)】3、問(wèn)題:以下有關(guān)編程語(yǔ)言的敘述中,錯(cuò)誤的是()。選項(xiàng):A、不能直接用機(jī)器語(yǔ)言(機(jī)器指令)編寫(xiě)程序B、用高級(jí)編程語(yǔ)言編寫(xiě)程序比用匯編語(yǔ)言更方便C、匯編語(yǔ)言和機(jī)器語(yǔ)言都與計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)相關(guān)D、計(jì)算機(jī)不能直接執(zhí)行高級(jí)語(yǔ)言程序和匯編語(yǔ)言程序正確答案:【不能直接用機(jī)器語(yǔ)言(機(jī)器指令)編寫(xiě)程序】4、問(wèn)題:以下有關(guān)機(jī)器指令和匯編指令的敘述中,錯(cuò)誤的是()。選項(xiàng):A、機(jī)器指令和匯編指令一一對(duì)應(yīng),功能相同B、?機(jī)器指令和匯編指令都能被計(jì)算機(jī)直接執(zhí)行C、匯編指令中用符號(hào)表示操作碼和地址碼D、?匯編指令中用十進(jìn)制或十六進(jìn)制表示立即數(shù)正確答案:【?機(jī)器指令和匯編指令都能被計(jì)算機(jī)直接執(zhí)行】5、問(wèn)題:以下有關(guān)使用高級(jí)編程語(yǔ)言編寫(xiě)和開(kāi)發(fā)軟件的敘述中,錯(cuò)誤的是()。選項(xiàng):A、須有一個(gè)翻譯或轉(zhuǎn)換程序,即編譯器或解釋器B、須有一套工具軟件或集成開(kāi)發(fā)環(huán)境,即語(yǔ)言處理系統(tǒng)C、須程序員在應(yīng)用程序中直接控制外設(shè)進(jìn)行輸入/輸出D、須有程序員與計(jì)算機(jī)交互的用戶接口,即GUI或CUI正確答案:【須程序員在應(yīng)用程序中直接控制外設(shè)進(jìn)行輸入/輸出】6、問(wèn)題:一個(gè)完整的計(jì)算機(jī)系統(tǒng)包括硬件和軟件。軟件又分為()。選項(xiàng):A、操作系統(tǒng)和語(yǔ)言處理程序B、系統(tǒng)軟件和應(yīng)用軟件C、操作系統(tǒng)和高級(jí)語(yǔ)言D、低級(jí)語(yǔ)言程序和高級(jí)語(yǔ)言程序正確答案:【系統(tǒng)軟件和應(yīng)用軟件】7、問(wèn)題:以下給出的軟件中,屬于系統(tǒng)軟件的是()。選項(xiàng):A、WindowsXPB、MSWordC、金山詞霸D、RealPlayer正確答案:【W(wǎng)indowsXP】8、問(wèn)題:以下有關(guān)指令集體系結(jié)構(gòu)的敘述中,錯(cuò)誤的是()。選項(xiàng):A、指令集體系結(jié)構(gòu)位于計(jì)算機(jī)軟件和硬件的交界面上B、指令集體系結(jié)構(gòu)是指低級(jí)語(yǔ)言程序員所看到的概念結(jié)構(gòu)和功能特性C、通用寄存器的長(zhǎng)度、功能與編號(hào)不屬于指令集體系結(jié)構(gòu)的內(nèi)容D、指令集體系結(jié)構(gòu)的英文縮寫(xiě)是ISA正確答案:【通用寄存器的長(zhǎng)度、功能與編號(hào)不屬于指令集體系結(jié)構(gòu)的內(nèi)容】9、問(wèn)題:以下有關(guān)計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)的敘述中,錯(cuò)誤的是()。?選項(xiàng):A、最上層是提供給最終用戶使用的應(yīng)用程序(軟件)層B、應(yīng)用程序員工作在指令集體系結(jié)構(gòu)層,需要對(duì)底層很熟悉?C、ISA是對(duì)硬件的抽象,軟件通過(guò)ISA使用硬件提供的功能D、OS是對(duì)ISA和硬件的抽象,程序員通過(guò)OS使用系統(tǒng)資源正確答案:【應(yīng)用程序員工作在指令集體系結(jié)構(gòu)層,需要對(duì)底層很熟悉?】10、問(wèn)題:以下術(shù)語(yǔ)中,不屬于計(jì)算機(jī)中硬件(即物理上實(shí)際存在的部件)的是()。選項(xiàng):A、算術(shù)邏輯部件B、指令字C、程序計(jì)數(shù)器(PC)D、數(shù)據(jù)通路正確答案:【指令字】第二周小測(cè)驗(yàn)1、問(wèn)題:108對(duì)應(yīng)的十六進(jìn)制形式是()。?選項(xiàng):A、6CHB、?B4HC、5CH?D、63H正確答案:【6CH】2、問(wèn)題:–1029的16位補(bǔ)碼用十六進(jìn)制表示為()。選項(xiàng):A、0405HB、7BFBHC、?8405HD、FBFBH?正確答案:【FBFBH?】3、問(wèn)題:考慮以下C語(yǔ)言代碼:shortsi=–8196;unsignedshortusi=si;執(zhí)行上述程序段后,usi的值是()。選項(xiàng):A、8196B、34572C、57339D、57340正確答案:【57340】4、問(wèn)題:考慮以下C語(yǔ)言代碼:shortsi=–32768;unsignedshortusi=si;執(zhí)行上述程序段后,usi的值是()。選項(xiàng):A、?–32768B、32768?C、65535D、65536?正確答案:【32768?】5、問(wèn)題:考慮以下C語(yǔ)言代碼:unsignedshortusi=65535;shortsi=usi;執(zhí)行上述程序段后,si的值是()。選項(xiàng):A、?65535B、–65535C、–1D、1正確答案:【–1】6、問(wèn)題:在ISOC90標(biāo)準(zhǔn)下執(zhí)行以下關(guān)系表達(dá)式,結(jié)果為“真”的是()。選項(xiàng):A、–10UB、2147483647–2147483648C、(unsigned)–1–2D、2147483647(int)2147483648U正確答案:【(unsigned)–1–2】7、問(wèn)題:–1028采用IEEE754單精度浮點(diǎn)數(shù)格式表示的結(jié)果(十六進(jìn)制形式)是()。選項(xiàng):A、44808000HB、C4808000HC、44C04000HD、C4C04000H正確答案:【C4808000H】8、問(wèn)題:假定變量i、f的數(shù)據(jù)類型分別是int、float。已知i=12345,f=1.2345e3,則在一個(gè)32位機(jī)器中執(zhí)行下列表達(dá)式時(shí),結(jié)果為“假”的是()。選項(xiàng):A、i==(int)(float)iB、i==(int)(double)iC、f==(float)(int)fD、f==(float)(double)f正確答案:【f==(float)(int)f】9、問(wèn)題:假定某計(jì)算機(jī)按字節(jié)編址,采用小端方式,有一個(gè)float型變量x的地址為0xffffc000,x=12345678H,則在內(nèi)存單元0xffffc001中存放的內(nèi)容是()。選項(xiàng):A、0001001000110100BB、00110100B?C、01010110B?D、?0101B正確答案:【01010110B?】10、問(wèn)題:下面是關(guān)于計(jì)算機(jī)中存儲(chǔ)器容量單位的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、最小的計(jì)量單位為位(bit),表示一位“0”或“1”B、最基本的計(jì)量單位是字節(jié)(Byte),一個(gè)字節(jié)等于8bitC、一臺(tái)計(jì)算機(jī)的編址單位、指令字長(zhǎng)和數(shù)據(jù)字長(zhǎng)都一樣,且是字節(jié)的整數(shù)倍D、“主存容量為1KB”的含義是指主存中能存放1024個(gè)字節(jié)的二進(jìn)制信息正確答案:【一臺(tái)計(jì)算機(jī)的編址單位、指令字長(zhǎng)和數(shù)據(jù)字長(zhǎng)都一樣,且是字節(jié)的整數(shù)倍】第三周小測(cè)驗(yàn)1、問(wèn)題:CPU中能進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算的最基本運(yùn)算部件是()。選項(xiàng):A、多路選擇器B、移位器C、加法器D、ALU正確答案:【ALU】2、問(wèn)題:ALU有一個(gè)操作控制端ALUop,ALU在ALUop的控制下執(zhí)行相應(yīng)的運(yùn)算。以下給出的運(yùn)算中,()運(yùn)算不能由ALUop直接控制完成。選項(xiàng):A、加法和減法B、乘法和除法?C、與、或、非等邏輯運(yùn)算D、傳送(ALU輸入直送為輸出)正確答案:【乘法和除法?】3、問(wèn)題:假設(shè)變量x的位數(shù)為n(n=8),x的最低有效字節(jié)不變,其余各位全變?yōu)?,則對(duì)應(yīng)C語(yǔ)言表達(dá)式為()。選項(xiàng):A、x0xFFB、x|0xFFC、x^0xFFD、x|~0xFF正確答案:【x0xFF】4、問(wèn)題:假設(shè)變量x的位數(shù)為n(n=8),x的最高有效字節(jié)不變,其余各位全變?yōu)?,則對(duì)應(yīng)C語(yǔ)言表達(dá)式為()。選項(xiàng):A、?(x(n-8))(n-8)B、((x0xFF)(n-8))(n-8)?C、(x(n-8))(n-8)D、((x0xFF)(n-8))(n-8)正確答案:【(x(n-8))(n-8)】5、問(wèn)題:考慮以下C語(yǔ)言代碼:shortsi=–8196;inti=si;執(zhí)行上述程序段后,i的機(jī)器數(shù)表示為()。選項(xiàng):A、0000DFFCHB、FFFF9FFCHC、FFFFDFFCHD、00009FFCH正確答案:【FFFFDFFCH】6、問(wèn)題:若在一個(gè)8位整數(shù)加/減運(yùn)算器中完成x–y的運(yùn)算,已知帶符號(hào)整數(shù)x=–69,y=–38,則加法器的兩個(gè)輸入端和輸入的低位進(jìn)位分別為()。選項(xiàng):A、10111011、11011010、0B、10111011、11011010、1C、10111011、00100101、1D、10111011、00100110、1正確答案:【10111011、00100101、1】7、問(wèn)題:若在一個(gè)8位整數(shù)加/減運(yùn)算器中完成x+y的運(yùn)算,已知無(wú)符號(hào)整數(shù)x=69,y=38,則加法器的兩個(gè)輸入端和輸入的低位進(jìn)位分別為()。選項(xiàng):A、01000101、00100110、0B、01000101、00100110、1C、01000101、11011010、0D、01000101、11011010、1正確答案:【01000101、00100110、0】8、問(wèn)題:若在一個(gè)8位整數(shù)加/減運(yùn)算器中完成x+y的運(yùn)算,已知x=63,y=–31,則x+y的機(jī)器數(shù)及相應(yīng)的溢出標(biāo)志OF分別是()。選項(xiàng):A、1FH、0B、20H、0C、1FH、1D、20H、1正確答案:【20H、0】9、問(wèn)題:若在一個(gè)8位整數(shù)加/減運(yùn)算器中完成x+y的運(yùn)算,假定變量x和y的機(jī)器數(shù)用補(bǔ)碼表示為[x]補(bǔ)=F5H,[y]補(bǔ)=7EH,則x+y的值及相應(yīng)的溢出標(biāo)志OF分別是()。選項(xiàng):A、115、0?B、119、0C、115、1?D、119、1?正確答案:【115、0?】10、問(wèn)題:若在一個(gè)8位整數(shù)加/減運(yùn)算器中完成x–y的運(yùn)算,假定變量x和y的機(jī)器數(shù)用補(bǔ)碼表示為[x]補(bǔ)=F5H,[y]補(bǔ)=7EH,則x–y的值及相應(yīng)的溢出標(biāo)志OF分別是()。選項(xiàng):A、115、0B、119、0C、115、1D、119、1正確答案:【119、1】第四周小測(cè)驗(yàn)1、問(wèn)題:若在一個(gè)8位計(jì)算機(jī)中完成x+2y的運(yùn)算,假定變量x和y的機(jī)器數(shù)用補(bǔ)碼表示為[x]補(bǔ)=44H,[y]補(bǔ)=DCH,則x+2y的機(jī)器數(shù)及相應(yīng)的溢出標(biāo)志OF分別是()。選項(xiàng):A、32H、0B、32H、1C、FCH、0D、FCH、1正確答案:【FCH、0】2、問(wèn)題:若在一個(gè)8位計(jì)算機(jī)中完成x–2y,假定變量x和y的機(jī)器數(shù)用補(bǔ)碼表示為[x]補(bǔ)=44H,[y]補(bǔ)=DCH,則x–2y的機(jī)器數(shù)及相應(yīng)的溢出標(biāo)志OF分別是(?)。選項(xiàng):A、68H、0B、68H、1C、8CH、0D、8CH、1正確答案:【8CH、1】3、問(wèn)題:若在一個(gè)8位計(jì)算機(jī)中完成x/2+2y,假定變量x和y的機(jī)器數(shù)用補(bǔ)碼表示為[x]補(bǔ)=44H,[y]補(bǔ)=DCH,則x/2+2y的機(jī)器數(shù)及相應(yīng)的溢出標(biāo)志OF分別是()。選項(xiàng):A、CAH、0B、CAH、1C、DAH、0D、DAH、1正確答案:【DAH、0】4、問(wèn)題:假定變量r1和r2的機(jī)器數(shù)用8位補(bǔ)碼表示為[r1]補(bǔ)=F5H,[r2]補(bǔ)=EEH。若將運(yùn)算結(jié)果存放在一個(gè)8位寄存器中,則下列運(yùn)算中會(huì)發(fā)生溢出的是()。選項(xiàng):A、r1+r2B、r1–r2C、r1×r2D、r1/r2正確答案:【r1×r2】5、問(wèn)題:假定整數(shù)加法指令、整數(shù)減法指令和移位指令所需時(shí)鐘周期(CPI)都為1,整數(shù)乘法指令所需時(shí)鐘周期為10。若x為整型變量,為了使計(jì)算64*x所用時(shí)鐘周期數(shù)最少,編譯器應(yīng)選用的最佳指令序列為()。選項(xiàng):A、1條乘法指令B、1條左移指令C、1條左移指令和1條加法指令D、兩條左移指令和兩條加法指令正確答案:【1條左移指令】6、問(wèn)題:假定整數(shù)加法指令、整數(shù)減法指令和移位指令所需時(shí)鐘周期(CPI)都為1,整數(shù)乘法指令所需時(shí)鐘周期為10。若x為整型變量,為了使計(jì)算54*x所用時(shí)鐘周期數(shù)最少,編譯器應(yīng)選用的最佳指令序列為()。選項(xiàng):A、1條乘法指令B、4條左移指令和3條加法指令C、3條左移指令和兩條減法指令D、兩條左移指令和兩條減法指令正確答案:【3條左移指令和兩條減法指令】7、問(wèn)題:假定整數(shù)加法指令、邏輯運(yùn)算指令和移位指令所需時(shí)鐘周期(CPI)都為1,整數(shù)除法指令所需時(shí)鐘周期為32。若x為整型變量,為了使計(jì)算x/64所用時(shí)鐘周期數(shù)最少,編譯器應(yīng)選用的最佳指令序列為()。選項(xiàng):A、1條除法指令B、1條右移指令C、1條加法指令、1條右移指令D、兩條右移指令、1條與操作指令、1條加法指令正確答案:【兩條右移指令、1條與操作指令、1條加法指令】8、問(wèn)題:已知float型變量用IEEE754單精度浮點(diǎn)格式表示,float型變量x和y的機(jī)器數(shù)分別表示為x=40E80000H,y=C2040000H,則在計(jì)算x+y時(shí),第一步對(duì)階操作的結(jié)果[Ex-Ey]補(bǔ)為()。選項(xiàng):A、00000111B、00000011C、11111011D、11111101正確答案:【11111101】9、問(wèn)題:對(duì)于IEEE754單精度浮點(diǎn)數(shù)加減運(yùn)算,只要對(duì)階時(shí)得到的兩個(gè)階之差的絕對(duì)值|ΔE|大于等于(),就無(wú)需繼續(xù)進(jìn)行后續(xù)處理,此時(shí),運(yùn)算結(jié)果直接取階大的那個(gè)數(shù)。選項(xiàng):A、23B、25C、127D、128正確答案:【25】10、問(wèn)題:變量dx、dy和dz的聲明和初始化如下:doubledx=(double)x;doubledy=(double)y;doubledz=(double)z;若float和double分別采用IEEE754單精度和雙精度浮點(diǎn)數(shù)格式,sizeof(int)=4,則對(duì)于任意int型變量x、y和z,以下哪個(gè)關(guān)系表達(dá)式是永真的?選項(xiàng):A、dx*dx=0B、(double)(float)x==dxC、dx+dy==(double)(x+y)D、(dx+dy)+dz==dx+(dy+dz)E、dx*dy*dz==dz*dy*dxF、dx/dx==dy/dy正確答案:【dx*dx=0#(dx+dy)+dz==dx+(dy+dz)】第五周小測(cè)驗(yàn)1、問(wèn)題:以下有關(guān)指令的敘述中,錯(cuò)誤的是()。選項(xiàng):A、機(jī)器指令是用二進(jìn)制表示的一個(gè)0/1序列,CPU能直接執(zhí)行B、匯編指令是機(jī)器指令的符號(hào)表示,CPU能直接執(zhí)行C、偽指令是由若干條機(jī)器指令構(gòu)成的一個(gè)指令序列,屬于軟件范疇D、微指令是一條機(jī)器指令所包含的控制信號(hào)的組合,CPU能直接執(zhí)行正確答案:【匯編指令是機(jī)器指令的符號(hào)表示,CPU能直接執(zhí)行】2、問(wèn)題:一條機(jī)器指令通常由多個(gè)字段構(gòu)成。以下選項(xiàng)中,通常(?)不顯式地包含在機(jī)器指令中。選項(xiàng):A、操作碼B、尋址方式C、下條指令地址D、寄存器編號(hào)正確答案:【下條指令地址】3、問(wèn)題:對(duì)于運(yùn)算類指令或傳送類指令,需要在指令中指出操作數(shù)或操作數(shù)所在的位置。通常,指令中指出的操作數(shù)不可能出現(xiàn)在()中。選項(xiàng):A、指令B、通用寄存器C、存儲(chǔ)單元D、程序計(jì)數(shù)器正確答案:【程序計(jì)數(shù)器】4、問(wèn)題:令集體系結(jié)構(gòu)(ISA)是計(jì)算機(jī)系統(tǒng)中必不可少的一個(gè)抽象層,它是對(duì)硬件的抽象,軟件通過(guò)它所規(guī)定的指令系統(tǒng)規(guī)范來(lái)使用硬件。以下有關(guān)ISA的敘述中,錯(cuò)誤的是()。選項(xiàng):A、ISA規(guī)定了所有指令的集合,包括指令格式和操作類型B、ISA規(guī)定了執(zhí)行每條指令時(shí)所包含的控制信號(hào)C、ISA規(guī)定了指令獲取操作數(shù)的方式,即尋址方式D、ISA規(guī)定了指令的操作數(shù)類型、寄存器結(jié)構(gòu)、存儲(chǔ)空間大小、編址方式和大端/小端方式正確答案:【ISA規(guī)定了執(zhí)行每條指令時(shí)所包含的控制信號(hào)】5、問(wèn)題:以下選項(xiàng)中,不屬于指令集體系結(jié)構(gòu)名稱的是()。選項(xiàng):A、UNIXB、IA-32C、ARMD、MIPS正確答案:【UNIX】6、問(wèn)題:以下Intel微處理器中,不兼容IA-32指令集體系結(jié)構(gòu)的是()。選項(xiàng):A、80386和80486B、Pentium(II、III、4)C、Core(i3、i5、i7)D、Itanium和Itanium2正確答案:【Itanium和Itanium2】7、問(wèn)題:以下關(guān)于IA-32指令格式的敘述中,錯(cuò)誤的是()。選項(xiàng):A、采用變長(zhǎng)指令字格式,指令長(zhǎng)度從一個(gè)字節(jié)到十幾個(gè)字節(jié)不等B、采用變長(zhǎng)操作碼,操作碼位數(shù)可能是5位到十幾位不等C、指令中指出的位移量和立即數(shù)的長(zhǎng)度可以是0、1、2或4個(gè)字節(jié)D、指令中給出的操作數(shù)所在的通用寄存器的寬度總是32位正確答案:【指令中給出的操作數(shù)所在的通用寄存器的寬度總是32位】8、問(wèn)題:以下關(guān)于IA-32指令尋址方式的敘述中,錯(cuò)誤的是()。選項(xiàng):A、操作數(shù)可以是指令中的立即數(shù)、也可以是通用寄存器或存儲(chǔ)單元中的內(nèi)容B、對(duì)于寄存器操作數(shù),必須在指令中給出通用寄存器的3位編號(hào)C、存儲(chǔ)器操作數(shù)中最復(fù)雜的尋址方式是“基址加比例變址加位移”D、相對(duì)尋址的目標(biāo)地址為“PC內(nèi)容加位移”,PC內(nèi)容指當(dāng)前正在執(zhí)行指令的地址正確答案:【相對(duì)尋址的目標(biāo)地址為“PC內(nèi)容加位移”,PC內(nèi)容指當(dāng)前正在執(zhí)行指令的地址】9、問(wèn)題:以下關(guān)于IA-32中整數(shù)運(yùn)算指令所支持的操作數(shù)的敘述中,錯(cuò)誤的是()。選項(xiàng):A、對(duì)于加減運(yùn)算指令,操作數(shù)不區(qū)分是無(wú)符號(hào)整數(shù)還是帶符號(hào)整數(shù)B、對(duì)于乘除運(yùn)算指令,操作數(shù)一定區(qū)分是無(wú)符號(hào)整數(shù)還是帶符號(hào)整數(shù)C、除乘法指令外,其他運(yùn)算指令的源操作數(shù)和目的操作數(shù)的位數(shù)相等D、參加運(yùn)算的操作數(shù)可以是一個(gè)字節(jié)(8b)、一個(gè)字(16b)或雙字(32b)正確答案:【除乘法指令外,其他運(yùn)算指令的源操作數(shù)和目的操作數(shù)的位數(shù)相等】10、問(wèn)題:以下關(guān)于IA-32的定點(diǎn)寄存器組織的敘述中,錯(cuò)誤的是()。選項(xiàng):A、每個(gè)通用寄存器都可作為32位、16位或8位寄存器使用B、寄存器EAX/AX/AL稱為累加器,ECX/CX/CL稱為計(jì)數(shù)寄存器C、寄存器ESP/SP稱為棧指針寄存器,EBP/BP稱為基址指針寄存器D、EIP/IP為指令指針寄存器,即PC;EFLAGS/FLAGS為標(biāo)志寄存器正確答案:【每個(gè)通用寄存器都可作為32位、16位或8位寄存器使用】第六周小測(cè)驗(yàn)1、問(wèn)題:某C語(yǔ)言程序中對(duì)數(shù)組變量b的聲明為“intb[10][5];”,有一條for語(yǔ)句如下:for(i=0;i10,i++)for(j=0;j5;j++)sum+=b[i][j];假設(shè)執(zhí)行到“sum+=b[i][j];”時(shí),sum的值在EAX中,b[i][0]所在的地址在EDX中,j在ESI中,則“sum+=b[i][j];”所對(duì)應(yīng)的指令(ATT格式)可以是()。選項(xiàng):A、addl0(%edx,%esi,4),%eaxB、addl0(%esi,%edx,4),%eaxC、addl0(%edx,%esi,2),%eaxD、addl0(%esi,%edx,2),%eax正確答案:【addl0(%edx,%esi,4),%eax】2、問(wèn)題:IA-32中指令“popl%ebp”的功能是()。選項(xiàng):A、R[esp]←R[esp]-4,R[ebp]←M[R[esp]]B、R[esp]←R[esp]+4,R[ebp]←M[R[esp]]C、R[ebp]←M[R[esp]],R[esp]←R[esp]-4D、R[ebp]←M[R[esp]],R[esp]←R[esp]+4正確答案:【R[ebp]←M[R[esp]],R[esp]←R[esp]+4】3、問(wèn)題:IA-32中指令“movl8(%edx,%esi,4),%edx”的功能是()。選項(xiàng):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]正確答案:【R[edx]←M[R[edx]+R[esi]*4+8]】4、問(wèn)題:設(shè)SignExt[x]表示對(duì)x符號(hào)擴(kuò)展,ZeroExt[x]表示對(duì)x零擴(kuò)展。IA-32中指令“movswl%cx,-20(%ebp)”的功能是()。選項(xiàng):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]]正確答案:【M[R[ebp]-20]←SignExt[R[cx]]】5、問(wèn)題:假設(shè)R[ax]=FFE8H,R[bx]=7FE6H,執(zhí)行指令“subw%bx,%ax”后,寄存器的內(nèi)容和各標(biāo)志的變化為()。選項(xiàng):A、R[ax]=8002H,OF=0,SF=1,CF=0,ZF=0B、R[bx]=8002H,OF=0,SF=1,CF=0,ZF=0C、R[ax]=8002H,OF=1,SF=1,CF=0,ZF=0D、R[bx]=8002H,OF=1,SF=1,CF=0,ZF=0正確答案:【R[ax]=8002H,OF=0,SF=1,CF=0,ZF=0】6、問(wèn)題:假設(shè)R[eax]=0000B160H,R[ebx]=00FF0110H,執(zhí)行指令“imulw%bx”后,通用寄存器的內(nèi)容變化為(?)。選項(xiàng):A、R[eax]=00007600H,R[dx]=FFACHB、R[eax]=FFAC7600H,其余不變C、R[eax]=00BC7600,其余不變D、R[eax]=00007600H,R[dx]=00BCH正確答案:【R[eax]=00007600H,R[dx]=FFACH】7、問(wèn)題:假設(shè)short型變量x被分配在寄存器AX中,若R[ax]=FF70H,則執(zhí)行指令“salw$2,%ax”后,變量x的機(jī)器數(shù)和真值分別是()。選項(xiàng):A、FDC0H,-576B、FFDCH,-36C、FDC3H,-573D、3FDC,16348正確答案:【FDC0H,-576】8、問(wèn)題:程序P中有兩個(gè)變量i和j,被分別分配在寄存器EAX和EDX中,P中語(yǔ)句“if(ij){…}”對(duì)應(yīng)的指令序列如下(左邊為指令地址,中間為機(jī)器代碼,右邊為匯編指令):804846a39c2cmpl%eax,%edx804846c7e0djlexxxxxxxx若執(zhí)行到804846a處的cmpl指令時(shí),i=105,j=100,則jle指令執(zhí)行后將會(huì)轉(zhuǎn)到()處的指令執(zhí)行。選項(xiàng):A、8048461B、804846eC、8048479D、804847b正確答案:【804847b】9、問(wèn)題:以下關(guān)于x87FPU浮點(diǎn)處理指令系統(tǒng)的敘述中,錯(cuò)誤的是()。選項(xiàng):A、提供8個(gè)80位浮點(diǎn)寄存器ST(0)~ST(7),采用棧結(jié)構(gòu),棧頂為ST(0)B、float、double和longdouble三種類型數(shù)據(jù)都按80位格式存放在浮點(diǎn)寄存器中C、float、double和longdouble型數(shù)據(jù)存入主存時(shí),分別占32位、64位和96位D、float和double型數(shù)據(jù)從主存裝入浮點(diǎn)寄存器時(shí)有可能發(fā)生舍入,造成精度損失正確答案:【float和double型數(shù)據(jù)從主存裝入浮點(diǎn)寄存器時(shí)有可能發(fā)生舍入,造成精度損失】10、問(wèn)題:以下關(guān)于MMX/SSE指令集的敘述中,錯(cuò)誤的是()。選項(xiàng):A、同一個(gè)微處理器同時(shí)支持IA-32指令集與MMX/SSE指令集B、MMX/SSE指令集和IA-32指令集共用同一套通用寄存器C、SSE指令是一種采用SIMD(單指令多數(shù)據(jù))技術(shù)的數(shù)據(jù)級(jí)并行指令D、目前SSE支持128位整數(shù)運(yùn)算或同時(shí)并行處理兩個(gè)64位雙精度浮點(diǎn)數(shù)正確答案:【MMX/SSE指令集和IA-32指令集共用同一套通用寄存器】第七周小測(cè)驗(yàn)1、問(wèn)題:假設(shè)P為調(diào)用過(guò)程,Q為被調(diào)用過(guò)程,程序在IA-32處理器上執(zhí)行,以下有關(guān)過(guò)程調(diào)用的敘述中,錯(cuò)誤的是()。選項(xiàng):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跳回到Q執(zhí)行應(yīng)使用RET指令正確答案:【從P傳到Q的實(shí)參無(wú)需重新分配空間存放】2、問(wèn)題:以下是有關(guān)IA-32的過(guò)程調(diào)用方式的敘述,錯(cuò)誤的是()。選項(xiàng):A、入口參數(shù)使用棧(stack)傳遞,即所傳遞的實(shí)參被分配在棧中B、返回地址是CALL指令下一條指令的地址,被保存在棧中C、EAX、ECX和EDX都是調(diào)用者保存寄存器D、EBX、ESI、EDI、EBP和ESP都是被調(diào)用者保存寄存器正確答案:【EBX、ESI、EDI、EBP和ESP都是被調(diào)用者保存寄存器】3、問(wèn)題:以下是有關(guān)IA-32的過(guò)程調(diào)用所使用的棧和棧幀的敘述,錯(cuò)誤的是()。選項(xiàng):A、每進(jìn)行一次過(guò)程調(diào)用,用戶棧從高地址向低地址增長(zhǎng)出一個(gè)棧幀B、從被調(diào)用過(guò)程返回調(diào)用過(guò)程之前,被調(diào)用過(guò)程會(huì)釋放自己的棧幀C、只能通過(guò)將棧指針ESP作為基址寄存器來(lái)訪問(wèn)用戶棧中的數(shù)據(jù)D、過(guò)程嵌套調(diào)用深度越深,棧中棧幀個(gè)數(shù)越多,嚴(yán)重時(shí)會(huì)發(fā)生棧溢出正確答案:【只能通過(guò)將棧指針ESP作為基址寄存器來(lái)訪問(wèn)用戶棧中的數(shù)據(jù)】4、問(wèn)題:以下是有關(guān)C語(yǔ)言程序的變量的作用域和生存期的敘述,錯(cuò)誤的是()。選項(xiàng):A、靜態(tài)(static型)變量和非靜態(tài)局部(auto型)變量都分配在對(duì)應(yīng)棧幀中B、因?yàn)榉庆o態(tài)局部變量被分配在棧中,所以其作用域僅在過(guò)程體內(nèi)C、非靜態(tài)局部變量可以和全局變量同名,是因?yàn)樗鼈儽环峙湓诓煌鎯?chǔ)區(qū)D、不同過(guò)程中的非靜態(tài)局部變量可以同名,是因?yàn)樗鼈儽环峙湓诓煌瑮姓_答案:【靜態(tài)(static型)變量和非靜態(tài)局部(auto型)變量都分配在對(duì)應(yīng)棧幀中】5、問(wèn)題:以下是一個(gè)C語(yǔ)言程序代碼:intadd(intx,inty){returnx+y;}intcaller(){intt1=100;intt2=200;intsum=add(t1,t2);returnsum;}以下關(guān)于上述程序代碼在IA-32上執(zhí)行的敘述中,錯(cuò)誤的是()。選項(xiàng):A、變量t1和t2被分配在caller函數(shù)的棧幀中B、傳遞參數(shù)時(shí)t1和t2的值從高地址到低地址依次存入棧中C、add函數(shù)返回時(shí)返回值存放在EAX寄存器中D、變量sum被分配在caller函數(shù)的棧幀中正確答案:【傳遞參數(shù)時(shí)t1和t2的值從高地址到低地址依次存入棧中】6、問(wèn)題:第5題中的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)10calladd11movl%eax,-4(%ebp)12movl-4(%ebp),%eax13leave14ret假定caller的調(diào)用過(guò)程為P,對(duì)于上述指令序列,以下敘述中錯(cuò)誤的是()。?選項(xiàng):A、第1條指令將過(guò)程P的EBP內(nèi)容壓入caller棧幀B、第2條指令使BEP內(nèi)容指向caller棧幀的底部C、第3條指令將棧指針ESP向高地址方向移動(dòng),以生成當(dāng)前棧幀D、從上述指令序列可看出,caller函數(shù)沒(méi)有使用被調(diào)用者保存寄存器正確答案:【第3條指令將棧指針ESP向高地址方向移動(dòng),以生成當(dāng)前棧幀】7、問(wèn)題:對(duì)于第5題的caller函數(shù)以及第6題給出的對(duì)應(yīng)機(jī)器級(jí)代碼,以下敘述中錯(cuò)誤的是()。選項(xiàng):A、變量t1和t2的有效地址分別為R[ebp]-12和R[ebp]-8B、變量t1所在的地址高(或大)于變量t2所在的地址C、參數(shù)t1和t2的有效地址分別為R[esp]和R[esp]+4D、參數(shù)t1所在的地址低(或小)于參數(shù)t2所在的地址正確答案:【變量t1所在的地址高(或大)于變量t2所在的地址】8、問(wèn)題:以下有關(guān)遞歸過(guò)程調(diào)用的敘述中,錯(cuò)誤的是()。選項(xiàng):A、可能需要執(zhí)行遞歸過(guò)程很多次,因而時(shí)間開(kāi)銷大B、每次遞歸調(diào)用都會(huì)生成一個(gè)新的棧幀,因而空間開(kāi)銷大C、每次遞歸調(diào)用在棧幀中保存的返回地址都不相同D、遞歸過(guò)程第一個(gè)參數(shù)的有效地址為R[ebp]+8正確答案:【每次遞歸調(diào)用在棧幀中保存的返回地址都不相同】9、問(wèn)題:以下關(guān)于if(cond_expr)then_statementelseelse_statement選擇結(jié)構(gòu)對(duì)應(yīng)的機(jī)器級(jí)代碼表示的敘述中,錯(cuò)誤的是()。選項(xiàng):A、一定包含一條無(wú)條件轉(zhuǎn)移指令B、一定包含一條條件轉(zhuǎn)移指令(分支指令)C、計(jì)算cond_expr的代碼段一定在條件轉(zhuǎn)移指令之前D、對(duì)應(yīng)then_statement的代碼一定在對(duì)應(yīng)else_statement的代碼之前正確答案:【對(duì)應(yīng)then_statement的代碼一定在對(duì)應(yīng)else_statement的代碼之前】10、問(wèn)題:以下關(guān)于循環(huán)結(jié)構(gòu)語(yǔ)句的機(jī)器級(jí)代碼表示的敘述中,錯(cuò)誤的是()。選項(xiàng):A、一定至少包含一條條件轉(zhuǎn)移指令B、不一定包含無(wú)條件轉(zhuǎn)移指令C、循環(huán)結(jié)束條件通常用一條比較指令CMP來(lái)實(shí)現(xiàn)D、循環(huán)體內(nèi)執(zhí)行的指令不包含條件轉(zhuǎn)移指令正確答案:【循環(huán)體內(nèi)執(zhí)行的指令不包含條件轉(zhuǎn)移指令】第八周小測(cè)驗(yàn)1、問(wèn)題:假定全局short型數(shù)組a的起始地址為0x804908c,則a[2]的地址是()。選項(xiàng):A、0x804908eB、0x8049090C、0x8049092D、0x8049094正確答案:【0x8049090】2、問(wèn)題:假定全局?jǐn)?shù)組a的聲明為char*a[8],a的首地址為0x80498c0,i在ECX中,現(xiàn)要將a[i]取到EAX相應(yīng)寬度的寄存器中,則所用的匯編指令是()。選項(xiàng):A、mov0x80498c0(,%ecx),%ahB、mov(0x80498c0,%ecx),%ahC、mov0x80498c0(,%ecx,4),%eaxD、mov(0x80498c0,%ecx,4),%eax正確答案:【mov0x80498c0(,%ecx,4),%eax】3、問(wèn)題:假定全局?jǐn)?shù)組a的聲明為double*a[8],a的首地址為0x80498c0,i在ECX中,現(xiàn)要將a[i]取到EAX相應(yīng)寬度的寄存器中,則所用的匯編指令是()。選項(xiàng):A、mov0x80498c0(,%ecx,4),%eax?B、mov(0x80498c0,%ecx,4),%eaxC、mov0x80498c0(,%ecx,8),%eaxD、mov(0x80498c0,%ecx,8),%eax正確答案:【mov0x80498c0(,%ecx,4),%eax?】4、問(wèn)題:假定局部數(shù)組a的聲明為inta[4]={0,-1,300,20},a的首地址為R[ebp]-16,則將a的首地址取到EDX的匯編指令是()。選項(xiàng):A、movl-16(%ebp),%edxB、movl-16(%ebp,4),%edxC、leal-16(%ebp),%edxD、leal-16(%ebp,4),%edx正確答案:【leal-16(%ebp),%edx】5、問(wèn)題:某C語(yǔ)言程序中有以下兩個(gè)變量聲明:inta[10];int*ptr=a[0];則ptr+i的值為()。選項(xiàng):A、a[0]+iB、a[0]+2′iC、a[0]+4′iD、a[0]+8′i正確答案:【a[0]+4′i】6、問(wèn)題:假定靜態(tài)short型二維數(shù)組b的聲明如下:staticshortb[2][4]={{2,9,-1,5},{3,8,2,-6}};若b的首地址為0x8049820,則按行優(yōu)先存儲(chǔ)方式下,數(shù)組元素“8”的地址是()。選項(xiàng):A、0x8049825B、0x804982aC、0x8049824D、0x8049828正確答案:【0x804982a】7、問(wèn)題:假定靜態(tài)short型二維數(shù)組b和指針數(shù)組pb的聲明如下:staticshortb[2][4]={{2,9,-1,5},{3,1,-6,2}};staticshort*pb[2]={b[0],b[1]};若b的首地址為0x8049820,則pb[1]的值是()。選項(xiàng):A、0x8049820B、0x8049822C、0x8049824D、0x8049828正確答案:【0x8049828】8、問(wèn)題:假定靜態(tài)short型二維數(shù)組b和指針數(shù)組pb的聲明如下:staticshortb[2][4]={{2,9,-1,5},{3,1,-6,2}};staticshort*pb[2]={b[0],b[1]};若b的首地址為0x8049820,則pb[1]的值是()。選項(xiàng):A、0x8049830B、0x8049832C、0x8049834D、0x8049838正確答案:【0x8049834】9、問(wèn)題:假定結(jié)構(gòu)體類型cont_info的聲明如下:structcont_info{charid[8];charname[16];unsignedpost;charaddress[100];charphone[20];};若結(jié)構(gòu)體變量x初始化定義為structcont_infox={“00000010”,“ZhangS”,210022,“273longstreet,HighBuilding#3015”,“12345678”},x的首地址在EDX中,則“unsignedxpost=x.post;”對(duì)應(yīng)匯編指令為()。?選項(xiàng):A、movl0x24(%edx),%eaxB、movl0x18(%edx),%eaxC、leal0x24(%edx),%eaxD、leal0x18(%edx),%eax正確答案:【movl0x18(%edx),%eax】10、問(wèn)題:以下是關(guān)于IA-32處理器對(duì)齊方式的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、不同操作系統(tǒng)采用的對(duì)齊策略可能不同B、可以用編譯指導(dǎo)語(yǔ)句(如C、pragmapack)設(shè)置對(duì)齊方式D、總是按其數(shù)據(jù)寬度進(jìn)行對(duì)齊,例如,double型變量的地址總是8的倍數(shù)E、對(duì)于同一個(gè)struct型變量,在不同對(duì)齊方式下可能會(huì)占用不同大小的存儲(chǔ)區(qū)正確答案:【總是按其數(shù)據(jù)寬度進(jìn)行對(duì)齊,例如,double型變量的地址總是8的倍數(shù)】第九周小測(cè)驗(yàn)1、問(wèn)題:以下有關(guān)IA-32和x86-64之間比較的敘述中,錯(cuò)誤的是()。選項(xiàng):A、IA-32的字長(zhǎng)為32位,x86-64的字長(zhǎng)為64位并兼容IA-32B、IA-32的通用寄存器有8個(gè),而x86-64的通用寄存器有16個(gè)C、IA-32的通用寄存器為8/16/32位,而x86-64的通用寄存器為8/16/32/64位D、(unsigned)long型變量在IA-32和x86-64中的長(zhǎng)度都是64位(四字)正確答案:【(unsigned)long型變量在IA-32和x86-64中的長(zhǎng)度都是64位(四字)】2、問(wèn)題:以下有關(guān)x86-64寄存器的敘述中,錯(cuò)誤的是()。選項(xiàng):A、用來(lái)存放將要執(zhí)行的指令的地址的指令指針寄存器為64位的RIPB、基址寄存器和編址寄存器都可以是任意一個(gè)64位的通用寄存器C、任何浮點(diǎn)操作數(shù)都被分配在浮點(diǎn)寄存器棧(ST(0)~ST(7))中D、128位的XMM寄存器從原來(lái)IA-32中的8個(gè)增加到16個(gè)正確答案:【任何浮點(diǎn)操作數(shù)都被分配在浮點(diǎn)寄存器棧(ST(0)~ST(7))中】3、問(wèn)題:以下有關(guān)x86-64對(duì)齊方式的敘述中,錯(cuò)誤的是()。選項(xiàng):A、short型數(shù)據(jù)必須按2字節(jié)邊界對(duì)齊B、int、float型數(shù)據(jù)必須按4字節(jié)邊界對(duì)齊C、long、double、指針型數(shù)據(jù)必須按8字節(jié)邊界對(duì)齊D、longdouble型數(shù)據(jù)在內(nèi)存占12字節(jié)空間(96位)正確答案:【longdouble型數(shù)據(jù)在內(nèi)存占12字節(jié)空間(96位)】4、問(wèn)題:以下有關(guān)x86-64傳送指令的敘述中,錯(cuò)誤的是()。選項(xiàng):A、相比IA-32,增加了movq指令,可傳送64位數(shù)據(jù)B、movl相當(dāng)于movzlq,能將目的寄存器高32位清0C、pushq和popq分別對(duì)ESP寄存器減8和加8D、movzbq的功能是將8位寄存器內(nèi)容零擴(kuò)展為64位正確答案:【pushq和popq分別對(duì)ESP寄存器減8和加8】5、問(wèn)題:假定變量x的類型為int,對(duì)于變量y的初始化聲明“l(fā)ongy=(long)x;”,其對(duì)應(yīng)的匯編指令是()。選項(xiàng):A、movslq%edx,%raxB、movzlq%edx,%raxC、movq%rdx,%raxD、movl%edx,%eax正確答案:【movslq%edx,%rax】6、問(wèn)題:假定變量x的類型為long,對(duì)于變量y的初始化聲明“inty=(int)x;”,其對(duì)應(yīng)的匯編指令不可能是()。選項(xiàng):A、movl%edx,%eaxB、movzlq%edx,%raxC、movslq%edx,%raxD、movsql%rdx,%eax正確答案:【movsql%rdx,%eax】7、問(wèn)題:以下是C語(yǔ)言賦值語(yǔ)句“x=a*b+c;”對(duì)應(yīng)的x86-64匯編代碼:movslq%edx,%rdxmovsbl%sil,%esiimull%edi,%esimovslq%esi,%rsileaq(%rdx,%rsi),%rax已知x、a、b和c分別在RAX、RDI、RSI和RDX對(duì)應(yīng)寬度的寄存器中,根據(jù)上述匯編指令序列,推測(cè)x、a、b和c的數(shù)據(jù)類型分別為()。?選項(xiàng):A、x—long,a—long,b—char,c—intB、x—long,a—int,b—char,c—intC、x—long,a—long,b—char,c—longD、x—long,a—int,b—char,c—long正確答案:【x—long,a—int,b—char,c—int】8、問(wèn)題:假定long型變量t、int型變量x和short型變量y分別在RAX、RDI和RSI對(duì)應(yīng)寬度寄存器中,C語(yǔ)言賦值語(yǔ)句“t=(long)(x+y);”對(duì)應(yīng)的x86-64匯編指令序列不可能是()。選項(xiàng):A、movswl%si,%edxaddl%edi,%edxmovslq%edx,%rax?B、movswq%si,%raxmovslq%edi,%rdxaddq%rdx,%raxC、movswq%si,%rdxleaq(%rdx,%rdi),%raxD、movswq%si,%rsimovslq%edi,%rdileaq(%rsi,%rdi),%rax正確答案:【movswq%si,%rdxleaq(%rdx,%rdi),%rax】9、問(wèn)題:以下關(guān)于x86-64過(guò)程調(diào)用的敘述中,錯(cuò)誤的是()。選項(xiàng):A、前6個(gè)參數(shù)采用通用寄存器傳遞,其余參數(shù)通過(guò)棧傳遞B、在通用寄存器中傳遞的參數(shù),都存放在64位寄存器中C、在棧中的參數(shù)若是基本類型,則被分配8個(gè)字節(jié)空間D、返回參數(shù)存放在RAX相應(yīng)寬度的寄存器中正確答案:【在通用寄存器中傳遞的參數(shù),都存放在64位寄存器中】10、問(wèn)題:以下關(guān)于IA-32和x86-64指令系統(tǒng)比較的敘述中,錯(cuò)誤的是()。選項(xiàng):A、對(duì)于64位數(shù)據(jù),x86-64可用一條指令處理,而IA-32需多條指令處理B、對(duì)于入口參數(shù),x86-64可用通用寄存器傳遞,而IA-32需用棧來(lái)傳遞C、對(duì)于浮點(diǎn)操作數(shù),x86-64存于128位的XMM中,而IA-32存于80位的ST(i)中D、對(duì)于返回地址,x86-64使用通用寄存器保存,而IA-32使用棧來(lái)保存正確答案:【對(duì)于返回地址,x86-64使用通用寄存器保存,而IA-32使用棧來(lái)保存】第十周小測(cè)驗(yàn)1、問(wèn)題:以下是有關(guān)使用GCC生成C語(yǔ)言程序的可執(zhí)行文件的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、第一步預(yù)處理,對(duì)B、include、C、define、D、ifdef等預(yù)處理命令進(jìn)行處理E、第二步編譯,將預(yù)處理結(jié)果編譯轉(zhuǎn)換為二進(jìn)制形式的匯編語(yǔ)言程序代碼F、第三步匯編,將匯編語(yǔ)言代碼匯編轉(zhuǎn)換為機(jī)器指令表示的機(jī)器語(yǔ)言代碼G、第四步鏈接,將多個(gè)模塊的機(jī)器語(yǔ)言代碼鏈接生成可執(zhí)行目標(biāo)程序文件正確答案:【第二步編譯,將預(yù)處理結(jié)果編譯轉(zhuǎn)換為二進(jìn)制形式的匯編語(yǔ)言程序代碼】2、問(wèn)題:以下是有關(guān)使用GCC生成C語(yǔ)言程序的可執(zhí)行文件的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、預(yù)處理的結(jié)果還是一個(gè)C語(yǔ)言源程序文件,屬于可讀的文本文件B、經(jīng)過(guò)預(yù)處理、編譯和匯編處理的結(jié)果是一個(gè)可重定位目標(biāo)文件C、每個(gè)C語(yǔ)言源程序文件生成一個(gè)對(duì)應(yīng)的可重定位目標(biāo)文件D、只要在鏈接命令中指定所有的相關(guān)可重定位目標(biāo)文件就能生成可執(zhí)行文件正確答案:【只要在鏈接命令中指定所有的相關(guān)可重定位目標(biāo)文件就能生成可執(zhí)行文件】3、問(wèn)題:以下是有關(guān)鏈接所帶來(lái)的好處和不足的敘述,錯(cuò)誤的是()。選項(xiàng):A、使得程序員可以分模塊開(kāi)發(fā)程序,有利于提高大規(guī)模程序的開(kāi)發(fā)效率B、使得公共函數(shù)庫(kù)可以為所有程序共享使用,有利于代碼重用和提高效率C、使得程序員僅需重新編譯修改過(guò)的源程序模塊,從而節(jié)省程序開(kāi)發(fā)時(shí)間D、使得所生成的可執(zhí)行目標(biāo)代碼中包含了更多公共庫(kù)函數(shù)代碼,所占空間大正確答案:【使得所生成的可執(zhí)行目標(biāo)代碼中包含了更多公共庫(kù)函數(shù)代碼,所占空間大】4、問(wèn)題:以下關(guān)于ELF目標(biāo)文件格式的敘述中,錯(cuò)誤的是()。選項(xiàng):A、可重定位目標(biāo)文件是ELF格式的鏈接視圖,由不同的節(jié)組成B、可執(zhí)行目標(biāo)文件是ELF格式的執(zhí)行視圖,由不同的段組成C、可重定位和可執(zhí)行兩種目標(biāo)文件中的數(shù)據(jù)都是二進(jìn)制表示的補(bǔ)碼形式D、可重定位和可執(zhí)行兩種目標(biāo)文件中的代碼都是二進(jìn)制表示的指令形式正確答案:【可重定位和可執(zhí)行兩種目標(biāo)文件中的數(shù)據(jù)都是二進(jìn)制表示的補(bǔ)碼形式】5、問(wèn)題:以下關(guān)于鏈接器基本功能的敘述中,錯(cuò)誤的是()。選項(xiàng):A、將每個(gè)符號(hào)引用與唯一的一個(gè)符號(hào)定義進(jìn)行關(guān)聯(lián)B、將每個(gè).o文件中的.data節(jié)、.text節(jié)和.bss節(jié)合并C、確定每個(gè)符號(hào)(包括全局變量和局部變量)的首地址D、根據(jù)所定義符號(hào)的首地址對(duì)符號(hào)的引用進(jìn)行重定位正確答案:【確定每個(gè)符號(hào)(包括全局變量和局部變量)的首地址】6、問(wèn)題:以下關(guān)于可重定位目標(biāo)文件的敘述中,錯(cuò)誤的是()。選項(xiàng):A、在.text節(jié)中包含相應(yīng)模塊內(nèi)所有機(jī)器代碼B、在.data節(jié)中包含相應(yīng)模塊內(nèi)所有變量的初始值C、在.rodata節(jié)中包含相應(yīng)模塊內(nèi)所有只讀數(shù)據(jù)D、在.rel.text節(jié)和.rel.data節(jié)中包含相應(yīng)模塊內(nèi)所有可重定位信息正確答案:【在.data節(jié)中包含相應(yīng)模塊內(nèi)所有變量的初始值】7、問(wèn)題:以下關(guān)于ELF目標(biāo)文件的ELF頭的敘述中,錯(cuò)誤的是()。選項(xiàng):A、包含了ELF頭本身的長(zhǎng)度和目標(biāo)文件的長(zhǎng)度B、包含了操作系統(tǒng)版本和機(jī)器結(jié)構(gòu)類型等信息C、包含了節(jié)頭表和程序頭表各自的起始位置和長(zhǎng)度D、數(shù)據(jù)結(jié)構(gòu)在可重定位和可執(zhí)行兩種目標(biāo)文件中完全一樣正確答案:【包含了ELF頭本身的長(zhǎng)度和目標(biāo)文件的長(zhǎng)度】8、問(wèn)題:以下關(guān)于ELF目標(biāo)文件的節(jié)頭表的敘述中,錯(cuò)誤的是()。選項(xiàng):A、每個(gè)表項(xiàng)用來(lái)記錄某個(gè)節(jié)的內(nèi)容以及相關(guān)描述信息B、通過(guò)節(jié)頭表可獲得節(jié)的名稱、類型、起始地址和長(zhǎng)度C、描述了每個(gè)可裝入節(jié)的起始虛擬地址、對(duì)齊和存取方式D、數(shù)據(jù)結(jié)構(gòu)在可重定位和可執(zhí)行兩種目標(biāo)文件中完全一樣正確答案:【每個(gè)表項(xiàng)用來(lái)記錄某個(gè)節(jié)的內(nèi)容以及相關(guān)描述信息】9、問(wèn)題:以下關(guān)于ELF可重定位和可執(zhí)行兩種目標(biāo)文件格式比較的敘述中,錯(cuò)誤的是()。選項(xiàng):A、可重定位目標(biāo)文件中有可重定位節(jié).rel.text和.rel.data,而在可執(zhí)行目標(biāo)文件中則沒(méi)有B、可重定位目標(biāo)文件中有初始化程序段.init節(jié),而在可執(zhí)行目標(biāo)文件中則沒(méi)有C、可執(zhí)行目標(biāo)文件中有程序頭表(段頭表),而在可重定位目標(biāo)文件中則沒(méi)有D、可執(zhí)行目標(biāo)文件的ELF頭中有具體程序入口地址,而在可重定位目標(biāo)文件中則為0正確答案:【可重定位目標(biāo)文件中有初始化程序段.init節(jié),而在可執(zhí)行目標(biāo)文件中則沒(méi)有】10、問(wèn)題:以下關(guān)于ELF可執(zhí)行目標(biāo)文件的程序頭表(段頭表)的敘述中,錯(cuò)誤的是()。選項(xiàng):A、用于描述可執(zhí)行文件中的節(jié)與主存中的存儲(chǔ)段之間的映射關(guān)系B、通過(guò)段頭表可獲得可裝入段或特殊段的類型、在文件中的偏移位置及長(zhǎng)度C、描述了每個(gè)可裝入段的起始虛擬地址、存儲(chǔ)長(zhǎng)度、存取方式和對(duì)齊方式D、.text節(jié)和.rodata節(jié)都包含在只讀代碼段,而.data節(jié)和.bss節(jié)都包含在讀寫(xiě)數(shù)據(jù)段正確答案:【用于描述可執(zhí)行文件中的節(jié)與主存中的存儲(chǔ)段之間的映射關(guān)系】第十一周小測(cè)驗(yàn)1、問(wèn)題:以下是鏈接過(guò)程中對(duì)符號(hào)定義的判斷,其中錯(cuò)誤的是()。選項(xiàng):A、全局變量聲明“intx,y;”中,x和y都是符號(hào)的定義B、全局變量聲明“int*xp=x;”中,xp和x都是符號(hào)的定義C、靜態(tài)局部變量聲明“staticintx=*xp;”中,x是符號(hào)的定義D、函數(shù)內(nèi)的局部變量聲明“shortx=200;”中,x不是符號(hào)的定義正確答案:【全局變量聲明“int*xp=x;”中,xp和x都是符號(hào)的定義】2、問(wèn)題:若x為局部變量,xp、y和z是全局變量,則以下判斷中錯(cuò)誤的是()。選項(xiàng):A、賦值語(yǔ)句“inty=x+z;”中,y和z都是符號(hào)的引用B、賦值語(yǔ)句“y=x+z;”中,y和z都是符號(hào)的引用C、靜態(tài)局部變量聲明“staticintx=*xp;”中,xp是符號(hào)的引用D、賦值語(yǔ)句“y=x+*xp;”中,y和xp都是符號(hào)的引用正確答案:【賦值語(yǔ)句“inty=x+z;”中,y和z都是符號(hào)的引用】3、問(wèn)題:以下有關(guān)ELF目標(biāo)文件的符號(hào)表的敘述中,錯(cuò)誤的是()。選項(xiàng):A、可重定位和可執(zhí)行兩種目標(biāo)文件中都有符號(hào)表且數(shù)據(jù)結(jié)構(gòu)一樣B、符號(hào)表定義在.symtab節(jié)中,每個(gè)表項(xiàng)描述某個(gè)符號(hào)的相應(yīng)信息C、通過(guò)符號(hào)表可獲得符號(hào)的名稱、所在節(jié)及在節(jié)中偏移地址和長(zhǎng)度D、符號(hào)表中包含了所有定義符號(hào)的描述信息,包括局部變量的相關(guān)信息正確答案:【符號(hào)表中包含了所有定義符號(hào)的描述信息,包括局部變量的相關(guān)信息】4、問(wèn)題:以下是有關(guān)鏈接過(guò)程中符號(hào)解析(符號(hào)綁定)的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、符號(hào)解析的目的是將符號(hào)引用與某目標(biāo)模塊中定義的符號(hào)建立關(guān)聯(lián)B、同一個(gè)符號(hào)名可能在多個(gè)模塊中有定義,每個(gè)定義處的符號(hào)都須分配空間C、本地符號(hào)的解析比較簡(jiǎn)單,只要與本模塊內(nèi)定義的符號(hào)關(guān)聯(lián)即可D、全局符號(hào)(包括外部全局符號(hào))需將模塊內(nèi)的引用與模塊外的定義符號(hào)綁定正確答案:【同一個(gè)符號(hào)名可能在多個(gè)模塊中有定義,每個(gè)定義處的符號(hào)都須分配空間】5、問(wèn)題:以下有關(guān)強(qiáng)符號(hào)和弱符號(hào)的符號(hào)解析的敘述中,錯(cuò)誤的是()。選項(xiàng):A、一個(gè)符號(hào)名只能有一個(gè)強(qiáng)符號(hào),否則符號(hào)解析失敗B、一個(gè)符號(hào)名可以有多個(gè)弱符號(hào),任選一個(gè)為其定義C、一個(gè)符號(hào)名可以有一個(gè)強(qiáng)符號(hào)和多個(gè)弱符號(hào),強(qiáng)符號(hào)為其定義D、一個(gè)符號(hào)名可以僅出現(xiàn)在引用處或僅出現(xiàn)在定義處正確答案:【一個(gè)符號(hào)名可以僅出現(xiàn)在引用處或僅出現(xiàn)在定義處】6、問(wèn)題:以下是兩個(gè)源程序文件:/*m1.c*//*m2.c*/intp1(viod);staticintmain=1;intmain()intp1(){{intp1=p1();main++;returnp1;returnmain;}}對(duì)于上述兩個(gè)源程序文件鏈接時(shí)的符號(hào)解析,錯(cuò)誤的是()。選項(xiàng):A、在m1中,定義了一個(gè)強(qiáng)符號(hào)main和一個(gè)弱符號(hào)p1B、在m2中,定義了一個(gè)強(qiáng)符號(hào)p1和一個(gè)局部符號(hào)mainC、在m1中,對(duì)m2中定義的強(qiáng)符號(hào)p1的引用只有一處D、因?yàn)槌霈F(xiàn)了兩個(gè)強(qiáng)符號(hào)main,所以會(huì)發(fā)生鏈接錯(cuò)誤正確答案:【因?yàn)槌霈F(xiàn)了兩個(gè)強(qiáng)符號(hào)main,所以會(huì)發(fā)生鏈接錯(cuò)誤】7、問(wèn)題:以下是兩個(gè)源程序文件:/*m1.c*//*m2.c*/intp1;intmain=1;intmain()intp1(){{intp1=p1();intp1=main++;returnp1;returnmain;}}對(duì)于上述兩個(gè)源程序文件鏈接時(shí)的符號(hào)解析,錯(cuò)誤的是()。選項(xiàng):A、在m1中,定義了一個(gè)強(qiáng)符號(hào)main和一個(gè)弱符號(hào)p1B、在m2中,定義了一個(gè)強(qiáng)符號(hào)p1和一個(gè)強(qiáng)符號(hào)mainC、在模塊m1的所有語(yǔ)句中,對(duì)符號(hào)p1的引用一共有三處D、因?yàn)槌霈F(xiàn)了兩個(gè)強(qiáng)符號(hào)main,所以會(huì)發(fā)生鏈接錯(cuò)誤正確答案:【在模塊m1的所有語(yǔ)句中,對(duì)符號(hào)p1的引用一共有三處】8、問(wèn)題:以下是兩個(gè)源程序文件:/*m1.c*//*m2.c*/intx=100;floatx;intp1(viod);staticmain=1;intmain()intp1(){{x=p1();intp1=main+(int)x;returnx;returnp1;}}對(duì)于上述兩個(gè)源程序文件鏈接時(shí)的符號(hào)解析,錯(cuò)誤的是()。選項(xiàng):A、m1中對(duì)x的兩處引用都與m1中對(duì)x的定義綁定B、m2中對(duì)x的引用與m2中對(duì)x的定義綁定C、m2中的變量p1與函數(shù)p1被分配在不同存儲(chǔ)區(qū)D、雖然x、main和p1都出現(xiàn)了多次定義,但不會(huì)發(fā)生鏈接錯(cuò)誤正確答案:【m2中對(duì)x的引用與m2中對(duì)x的定義綁定】9、問(wèn)題:以下是兩個(gè)源程序文件:/*m1.c*//*m2.c*/#includestdio.hintx=100;doublex;shorty=1,z=2;intmain()voidp1(){{p1();x=-1.0;printf(“x=%d,z=%d\n”,x,z);}}上述程序執(zhí)行的結(jié)果是()。提示:1074790400=2^30+2^20,16400=2^14+2^4。選項(xiàng):A、x=100,z=2B、x=-1,z=2C、x=-1074790400,z=0D、x=0,z=-16400正確答案:【x=0,z=-16400】10、問(wèn)題:假設(shè)調(diào)用關(guān)系如下:func.o→libx.a和liby.a中的函數(shù),libx.a→libz.a中的函數(shù),libx.a和liby.a之間、liby.a和libz.a相互獨(dú)立,則以下幾個(gè)命令行中,靜態(tài)鏈接發(fā)生錯(cuò)誤的命令是()。選項(xiàng):A、gcc-static–omyfuncfunc.olibx.aliby.alibz.aB、gcc-static–omyfuncfunc.oliby.alibz.alibx.aC、gcc-static–omyfuncfunc.olibx.alibz.aliby.aD、gcc-static–omyfuncfunc.oliby.alibx.alibz.a正確答案:【gcc-static–omyfuncfunc.oliby.alibz.alibx.a】第十二周小測(cè)驗(yàn)1、問(wèn)題:以下有關(guān)重定位功能的敘述中,錯(cuò)誤的是()。選項(xiàng):A、重定位的最終目標(biāo)是重新確定各模塊合并后每個(gè)引用所指向的目標(biāo)地址B、重定位的第一步應(yīng)先將相同的節(jié)合并,且將具有相同存取屬性的節(jié)合并成段C、重定位的第二步是確定每個(gè)段的起始地址,并確定段內(nèi)每個(gè)定義處符號(hào)的地址D、重定位的最后一步是將引用處的地址修改為與之關(guān)聯(lián)(綁定)的定義處的首地址正確答案:【重定位的最后一步是將引用處的地址修改為與之關(guān)聯(lián)(綁定)的定義處的首地址】2、問(wèn)題:以下有關(guān)重定位信息的敘述中,錯(cuò)誤的是()。選項(xiàng):A、重定位信息是由編譯器在生成匯編指令時(shí)產(chǎn)生的B、指令中的重定位信息在可重定位目標(biāo)文件的.rel.text節(jié)中C、數(shù)據(jù)中的重定位信息在可重定位目標(biāo)文件的.rel.data節(jié)中D、重定位信息包含需重定位的位置、綁定的符號(hào)和重定位類型正確答案:【重定位信息是由編譯器在生成匯編指令時(shí)產(chǎn)生的】3、問(wèn)題:假定“intbuf[2]={10,50};”所定義的buf被分配在靜態(tài)數(shù)據(jù)區(qū),其首地址為0x8048930,bufp1為全局變量,被分配在buf隨后的存儲(chǔ)空間。以下關(guān)于“int*bufp1=buf[1];”的重定位的描述中,錯(cuò)誤的是()。選項(xiàng):A、bufp1的地址為0x8048938,重定位前的內(nèi)容為04H、00H、00H、00HB、在可重定位目標(biāo)文件的.rel.data節(jié)中,有一個(gè)引用buf的重定位條目C、在相應(yīng)的重定位條目中,對(duì)bufp1和buf的引用均采用絕對(duì)地址方式D、在可執(zhí)行目標(biāo)文件中,地址0x8048938開(kāi)始的4個(gè)字節(jié)為34H、89H、04H、08H正確答案:【在相應(yīng)的重定位條目中,對(duì)bufp1和buf的引用均采用絕對(duì)地址方式】4、問(wèn)題:假定“intbuf[2]={10,50};”所定義的buf被分配在靜態(tài)數(shù)據(jù)區(qū),其首地址為0x8048930,bufp1為全局變量,也被分配在靜態(tài)數(shù)據(jù)區(qū)。以下關(guān)于“bufp1=buf[1];”的重定位的描述中,錯(cuò)誤的是()。選項(xiàng):A、在可重定位目標(biāo)文件的.rel.data節(jié)中,有一個(gè)與bufp1相關(guān)的重定位條目B、在可重定位目標(biāo)文件的.rel.text節(jié)中,有一個(gè)與buf相關(guān)的重定位條目C、在相應(yīng)的重定位條目中,對(duì)bufp1和buf的引用均采用絕對(duì)地址方式D、可用一條mov指令實(shí)現(xiàn)該賦值語(yǔ)句,該mov指令中有兩處需要重定位正確答案:【在可重定位目標(biāo)文件的.rel.data節(jié)中,有一個(gè)與bufp1相關(guān)的重定位條目】5、問(wèn)題:以下是有關(guān)在Linux系統(tǒng)中啟動(dòng)可執(zhí)行目標(biāo)文件執(zhí)行的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、可在CUI(命令行用戶界面)中雙擊可執(zhí)行目標(biāo)文件對(duì)應(yīng)的圖標(biāo)來(lái)啟動(dòng)其執(zhí)行B、可在CUI(命令行用戶界面)中的命令行提示符后輸入對(duì)應(yīng)的命令來(lái)啟動(dòng)其執(zhí)行C、可以通過(guò)在一個(gè)程序中調(diào)用execve()系統(tǒng)調(diào)用函數(shù)來(lái)啟動(dòng)可執(zhí)行文件執(zhí)行D、不管是哪種啟動(dòng)執(zhí)行方式,最終都是通過(guò)調(diào)用execve()系統(tǒng)調(diào)用函數(shù)實(shí)現(xiàn)的正確答案:【可在CUI(命令行用戶界面)中雙擊可執(zhí)行目標(biāo)文件對(duì)應(yīng)的圖標(biāo)來(lái)啟動(dòng)其執(zhí)行】6、問(wèn)題:以下是有關(guān)在Linux系統(tǒng)中加載可執(zhí)行目標(biāo)文件的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、可執(zhí)行目標(biāo)文件的加載通過(guò)execve()函數(shù)調(diào)用的加載器來(lái)完成B、加載器通過(guò)可執(zhí)行目標(biāo)文件中的程序頭表對(duì)可裝入段進(jìn)行加載C、在可執(zhí)行目標(biāo)文件的加載過(guò)程中,其中的指令和數(shù)據(jù)被讀入主存D、任何可執(zhí)行目標(biāo)文件中的可裝入段被映射到一個(gè)統(tǒng)一的虛擬地址空間正確答案:【在可執(zhí)行目標(biāo)文件的加載過(guò)程中,其中的指令和數(shù)據(jù)被讀入主存】7、問(wèn)題:以下是在Linux系統(tǒng)中啟動(dòng)并加載可執(zhí)行目標(biāo)文件過(guò)程中shell命令行解釋程序所做的部分操作:①構(gòu)造構(gòu)造argv和envp②調(diào)用fork()系統(tǒng)調(diào)用函數(shù)③調(diào)用execve()系統(tǒng)調(diào)用函數(shù)④讀入命令(可執(zhí)行文件名)及參數(shù)啟動(dòng)并加載可執(zhí)行目標(biāo)文件的正確步驟是()。選項(xiàng):A、①→②→③→④B、②→④→①→③C、④→①→②→③D、④→①→③→②正確答案:【④→①→②→③】8、問(wèn)題:以下是有關(guān)動(dòng)態(tài)鏈接及其所鏈接的共享庫(kù)以及動(dòng)態(tài)鏈接生成的可執(zhí)行目標(biāo)文件的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、共享庫(kù)在Linux下稱為動(dòng)態(tài)共享對(duì)象(.so),在Windows下稱為動(dòng)態(tài)鏈接庫(kù)(.dll)B、生成的可執(zhí)行目標(biāo)文件是部分鏈接的,也即,其中還有部分引用沒(méi)有進(jìn)行重定位C、可執(zhí)行目標(biāo)文件由動(dòng)態(tài)鏈接器對(duì)可重定位目標(biāo)文件和共享庫(kù)中部分信息進(jìn)行鏈接而成D、可執(zhí)行目標(biāo)文件在加載或執(zhí)行時(shí),系統(tǒng)將會(huì)調(diào)出動(dòng)態(tài)鏈接器利用共享庫(kù)對(duì)其進(jìn)行動(dòng)態(tài)鏈接正確答案:【可執(zhí)行目標(biāo)文件由動(dòng)態(tài)鏈接器對(duì)可重定位目標(biāo)文件和共享庫(kù)中部分信息進(jìn)行鏈接而成】9、問(wèn)題:以下是有關(guān)靜態(tài)鏈接和動(dòng)態(tài)鏈接比較的敘述,其中錯(cuò)誤的是()。選項(xiàng):A、靜態(tài)庫(kù)函數(shù)代碼包含在進(jìn)程代碼段中,而共享庫(kù)函數(shù)代碼不包含在進(jìn)程代碼段中B、靜態(tài)庫(kù)函數(shù)代碼包含在可執(zhí)行目標(biāo)文件中,而共享庫(kù)函數(shù)代碼不包含在可執(zhí)行目標(biāo)文件中C、靜態(tài)庫(kù)函數(shù)更新后需對(duì)程序重新編譯和鏈接,而共享庫(kù)函數(shù)更新后程序無(wú)需重新編譯和鏈接D、靜態(tài)鏈接情況下靜態(tài)庫(kù)函數(shù)在加載時(shí)被鏈接,動(dòng)態(tài)鏈接情況下共享庫(kù)函數(shù)可在加載或運(yùn)行時(shí)被鏈接正確答案:【靜態(tài)鏈接情況下靜態(tài)庫(kù)函數(shù)在加載時(shí)被鏈接,動(dòng)態(tài)鏈接情況下共享庫(kù)函數(shù)可在加載或運(yùn)行時(shí)被鏈接】10、問(wèn)題:一個(gè)共享庫(kù)文件(.so文件)由多個(gè)模塊(.o文件)生成。在生成共享庫(kù)文件的過(guò)程中,需要對(duì).o文件進(jìn)行處理,以生成位置無(wú)關(guān)代碼。以下有關(guān)位置無(wú)關(guān)代碼(PIC)生成的敘述中,錯(cuò)誤的是()。選項(xiàng):A、模塊內(nèi)函數(shù)之間的調(diào)用可用PC相對(duì)地址實(shí)現(xiàn),無(wú)需動(dòng)態(tài)鏈接器進(jìn)行重定位B、模塊內(nèi)數(shù)據(jù)的引用無(wú)需動(dòng)態(tài)鏈接器進(jìn)行重定位,因?yàn)橐门c定義間相對(duì)位置固定C、模塊外數(shù)據(jù)的引用需要?jiǎng)討B(tài)鏈接器進(jìn)行重定位,重定位時(shí)在GOT中填入外部數(shù)據(jù)的地址D、模塊間函數(shù)調(diào)用需要?jiǎng)討B(tài)鏈接器進(jìn)行重定位,重定位時(shí)在GOT和PLT中填入相應(yīng)內(nèi)容正確答案:【模塊間函數(shù)調(diào)用需要?jiǎng)討B(tài)鏈接器進(jìn)行重定位,重定位時(shí)在GOT和PLT中填入相應(yīng)內(nèi)容】期末考試1、問(wèn)題:以下有關(guān)指令集體系結(jié)構(gòu)的敘述中,錯(cuò)誤的是()。選項(xiàng):A、指令集體系結(jié)構(gòu)是一種規(guī)定B、指令集體系結(jié)構(gòu)是對(duì)軟件的一種抽象C、指令集體系結(jié)構(gòu)位于軟件和硬件的交界面D、指令集體系結(jié)構(gòu)在計(jì)算機(jī)系統(tǒng)層次中必不可少正確答案:【指令集體系結(jié)構(gòu)是對(duì)軟件的一種抽象】2、問(wèn)題:以下有關(guān)馮?諾依曼結(jié)構(gòu)思想的敘述中,錯(cuò)誤的是()。選項(xiàng):A、計(jì)算機(jī)由運(yùn)算器、存儲(chǔ)器、控制器和I/O設(shè)備組成B、程序由指令構(gòu)成,計(jì)算機(jī)能自動(dòng)執(zhí)行程序中一條一條指令C、指令和數(shù)據(jù)都放在存儲(chǔ)器中,兩者在形式上有差別D、計(jì)算機(jī)內(nèi)部以二進(jìn)制形式表示指令和數(shù)據(jù)正確答案:【指令和數(shù)據(jù)都放在存儲(chǔ)器中,兩者在形式上有差別】3、問(wèn)題:以下有關(guān)機(jī)器指令和匯編指令的敘述中,錯(cuò)誤的是()。選項(xiàng):A、機(jī)器指令和匯編指令一一對(duì)應(yīng),功能相同B、機(jī)器指令和匯編指令都能被計(jì)算機(jī)直接執(zhí)行C、匯編指令中用符號(hào)表示操作碼和地址碼D、匯編指令中用十進(jìn)制或十六進(jìn)制表示立即數(shù)正確答案:【機(jī)器指令和匯編指令都能被計(jì)算機(jī)直接執(zhí)行】4、問(wèn)題:下列數(shù)中最小的數(shù)為()。選項(xiàng):A、1010110BB、73OC、66DD、3FH正確答案:【73O】5、問(wèn)題:考慮以下C語(yǔ)言代碼:unsignedshortusi=65530;shortsi=usi;執(zhí)行上述程序段后,si的值是()。選項(xiàng):A、65530B、–65530C、–5D、–6正確答案:【–6】6、問(wèn)題:在ISOC90標(biāo)準(zhǔn)下執(zhí)行以下關(guān)系表達(dá)式,結(jié)果為“真”的是()。選項(xiàng):A、–10UB、2147483647–2147483648C、(unsigned)–1–2D、2147483647(int)2147483648U正確答案:【(unsigned)–1–2】7、問(wèn)題:已知IA-32采用小端方式,有一個(gè)IA-32機(jī)器中的可執(zhí)行文件反匯編后得到的機(jī)器級(jí)表示如下,其中左邊冒號(hào)前為指令地址,中間為機(jī)器指令,右邊為匯編指令?!?0483d2:81ec10010000sub$0x110,%esp……80483de:8b8501ffffffmov0xffffff01(%ebp),%eax上述劃線部分表示的立即數(shù)的值分別是()。選項(xiàng):A、268435456,33554432B、272,–255C、268435456,–255D、272,33554432正確答案:【272,–255】8、問(wèn)題:–1.0625采用IEEE754單精度浮點(diǎn)數(shù)格式表示的結(jié)果(十六進(jìn)制形式)是()。選項(xiàng):A、3F880000HB、BF880000HC、40080000HD、C0080000H正確答案:【BF880000H】9、問(wèn)題:假定某數(shù)采用IEEE754單精度浮點(diǎn)數(shù)格式表示為C8200000H,則該數(shù)的值是()。選項(xiàng):A、–1.01×2^17B、–1.01×2^144C、–1.25×2^17D、–1.25×2^144正確答案:【–1.25×2^17】10、問(wèn)題:假定某數(shù)采用IEEE754單精度浮點(diǎn)數(shù)格式表示為00000001H,則該數(shù)的值是()。選項(xiàng):A、1.0×2^(-149)B、1.0×2^(-150)C、1.00…01×2^(-127)D、NaN(非數(shù))正確答案:【1.0×2^(-149)】11、問(wèn)題:若int型變量x的最高有效字節(jié)全變0,其余各位不變,則對(duì)應(yīng)C語(yǔ)言表達(dá)式為()。選項(xiàng):A、(x8)8B、(x8)8C、((unsigned)x8)8D、((unsigned)x8)8正確答案:【((unsigned)x8)8】12、問(wèn)題:假定整數(shù)加法指令、整數(shù)減法指令和移位指令所需時(shí)鐘周期都為1,整數(shù)乘法指令所需時(shí)鐘周期為8。若x為整型變量,為了使計(jì)算36*x所用時(shí)鐘周期數(shù)最少,編譯器應(yīng)選用的最佳指令序列為()。選項(xiàng):A、1條乘法指令B、兩條左移指令和1條加法指令C、4條左移指令和3條減法指令D、3條左移指令和兩條加法指令正確答案:【兩條左移指令和1條加法指令】13、問(wèn)題:某C語(yǔ)言程序中對(duì)數(shù)組變量b的聲明為“shortb[10][5];”,sum為int型,有一條for語(yǔ)句如下:for(i=0;i10,i++)for(j=0;j5;j++)sum+=b[i][j];假設(shè)執(zhí)行到“sum+=b[i][j];”時(shí),sum的值在EAX中,b[i][0]所在的地址在ECX中,j在EDI中,則“sum+=b[i][j];”所對(duì)應(yīng)的指令或指令序列(ATT格式)可以是()。選項(xiàng):A、addl0(%edi,%ecx,2),%eaxB、addl

溫馨提示

  • 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)論