《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案
《《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案(44頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
44 《微機(jī)原理與接口技術(shù)》習(xí)題解答 習(xí)題1 1.1 馮諾依曼型計(jì)算機(jī)的設(shè)計(jì)方案有哪些特點(diǎn)? 【解答】馮諾依曼型計(jì)算機(jī)的設(shè)計(jì)方案是“存儲(chǔ)程序”和“程序控制”,有以下5方面特點(diǎn): (1)用二進(jìn)制數(shù)表示數(shù)據(jù)和指令; (2)指令和數(shù)據(jù)存儲(chǔ)在內(nèi)部存儲(chǔ)器中,按順序自動(dòng)依次執(zhí)行指令; (3)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成基本硬件系統(tǒng); (4)由控制器來(lái)控制程序和數(shù)據(jù)的存取及程序的執(zhí)行; (5)以運(yùn)算器為核心。 1.2 微處理器和微型計(jì)算機(jī)的發(fā)展經(jīng)歷了哪些階段?各典型芯片具備哪些特點(diǎn)? 【解答】經(jīng)歷了6代演變,各典型芯片的特點(diǎn)如表1-1所示。 表1-1 微處理器的發(fā)展及典型芯片的特點(diǎn) 發(fā)展時(shí)代 類別 典型芯片及性能特點(diǎn) 第一代 (1971~1973年) 4、8位低檔微處理器 Intel 4004集成2300多個(gè)晶體管,主頻108KHz,尋址640Byte,指令系統(tǒng)簡(jiǎn)單;Intel 8008采用PMOS工藝,集成3500晶體管,基本指令48條,主頻500KHz。 第二代 (1974~1977年) 8位中高檔微處理器 Intel 8080采用NMOS工藝,集成6000晶體管,主頻2MHz,指令系統(tǒng)較完善,尋址能力增強(qiáng),運(yùn)算速度提高了一個(gè)數(shù)量級(jí)。 第三代 (1978~1984年) 16位 微處理器 Intel 8086采用HMOS工藝,集成29000晶體管,主頻5MHz/8MHz/10MHz ,尋址1MB。Intel 80286集成度達(dá)到13.4萬(wàn)晶體管,主頻20MHz。 第四代 (1985~1992年) 32位 微處理器 Intel 80386集成27.5萬(wàn)個(gè)晶體管,主頻33MHz,4GB物理尋址。有分段存儲(chǔ)和分頁(yè)存儲(chǔ)部件,可管理64TB虛擬存儲(chǔ)空間。Intel 80486集成120萬(wàn)個(gè)晶體管,包含浮點(diǎn)運(yùn)算部件和8KB的一級(jí)高速緩沖存儲(chǔ)器Cache。 第五代 (1993~1999年) 超級(jí)32位 微處理器 Intel Pentium、Pentium Pro、Pentium MMX、Pentium II、 Pentium III、Pentium 4微處理器等,采用新式處理器結(jié)構(gòu),數(shù)據(jù)加密、視頻壓縮和對(duì)等網(wǎng)絡(luò)等方面性能有較大幅度提高。 第六代 (2000年以后) 64位 微處理器Merced 由Intel公司與HP公司聯(lián)手開(kāi)發(fā)的Merced采用全新的IA-64結(jié)構(gòu)設(shè)計(jì),是一種采用長(zhǎng)指令字、指令預(yù)測(cè)、分支消除、推理裝入和其他一些先進(jìn)技術(shù)的全新結(jié)構(gòu)微處理器。 1.3 微型計(jì)算機(jī)的特點(diǎn)和主要性能指標(biāo)有那些? 【解答】除具有運(yùn)算速度快、計(jì)算精度高、有記憶能力和邏輯判斷能力、可自動(dòng)連續(xù)工作等基本特點(diǎn)以外,還具有功能強(qiáng)、可靠性高、價(jià)格低廉、結(jié)構(gòu)靈活、適應(yīng)性強(qiáng)、體積小、重量輕、功耗低、使用和維護(hù)方便等。 微型計(jì)算機(jī)的性能指標(biāo)與系統(tǒng)結(jié)構(gòu)、指令系統(tǒng)、硬件組成、外部設(shè)備以及軟件配備等有關(guān)。常用的微型計(jì)算機(jī)性能指標(biāo)主要有:字長(zhǎng)、主頻、內(nèi)存容量、指令數(shù)、基本指令執(zhí)行時(shí)間、可靠性、兼容性、性能價(jià)格比等。 1.4 常見(jiàn)的微型計(jì)算機(jī)硬件結(jié)構(gòu)由哪些部分組成?各部分的主要功能和特點(diǎn)是什么? 【解答】微型計(jì)算機(jī)硬件一般由微處理器、內(nèi)存儲(chǔ)器、外存儲(chǔ)器、系統(tǒng)總線、接口電路、輸入/輸出設(shè)備等部件組成。 主要組成部件的功能和特點(diǎn)分析如下: (1)微處理器:是微型計(jì)算機(jī)的核心部件,由運(yùn)算單元ALU、控制單元、寄存器組以及總線接口部件等組成,其功能是負(fù)責(zé)統(tǒng)一協(xié)調(diào)、管理和控制系統(tǒng)中的各個(gè)部件有機(jī)地工作。 (2)內(nèi)存儲(chǔ)器:用來(lái)存放計(jì)算機(jī)工作過(guò)程中需要的操作數(shù)據(jù)和程序。 可分為隨機(jī)存儲(chǔ)器RAM和只讀存儲(chǔ)器ROM。RAM存放當(dāng)前參與運(yùn)行的各種程序和數(shù)據(jù),特點(diǎn)是信息可讀可寫,存取方便,但信息斷電后會(huì)丟失;ROM用于存放各種固定的程序和數(shù)據(jù),特點(diǎn)是信息固定不變,關(guān)機(jī)后原存儲(chǔ)的信息不會(huì)丟失。 (3)系統(tǒng)總線:是CPU與其它部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道。 可分成數(shù)據(jù)總線DB、地址總線AB、控制總線CB。 (4)輸入/輸出接口電路:完成微型計(jì)算機(jī)與外部設(shè)備之間的信息交換。由寄存器組、專用存儲(chǔ)器和控制電路等組成。 (5)主機(jī)板:由CPU插座、芯片組、內(nèi)存插槽、系統(tǒng)BIOS、CMOS、總線擴(kuò)展槽、串行/并行接口、各種跳線和一些輔助電路等硬件組成。 (6)外存儲(chǔ)器: 使用最多的是磁盤存儲(chǔ)器(軟盤、硬盤)和光盤存儲(chǔ)器。外存儲(chǔ)器容量大,保存的信息不會(huì)丟失。 (7)輸入/輸入設(shè)備:是微型計(jì)算機(jī)系統(tǒng)與外部進(jìn)行通信聯(lián)系的主要裝置。常用的有鍵盤、鼠標(biāo)、顯示器、打印機(jī)和掃描儀等。 1.5 什么是微型計(jì)算機(jī)的系統(tǒng)總線?說(shuō)明數(shù)據(jù)總線、地址總線、控制總線各自的作用。 【解答】系統(tǒng)總線是CPU與其它部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道。 (1)數(shù)據(jù)總線:用來(lái)傳送數(shù)據(jù),主要實(shí)現(xiàn)CPU與內(nèi)存儲(chǔ)器或I/O設(shè)備之間、內(nèi)存儲(chǔ)器與I/O設(shè)備或外存儲(chǔ)器之間的數(shù)據(jù)傳送。 (2)地址總線:用來(lái)傳送地址。主要實(shí)現(xiàn)從CPU送地址至內(nèi)存儲(chǔ)器和I/O設(shè)備,或從外存儲(chǔ)器傳送地址至內(nèi)存儲(chǔ)器等。 (3)控制總線:用于傳送控制信號(hào)、時(shí)序信號(hào)和狀態(tài)信息等。 1.6 什么是系統(tǒng)的主機(jī)板?由哪些部件組成? 【解答】CPU、RAM、ROM、I/O接口電路以及系統(tǒng)總線組成的計(jì)算機(jī)裝置稱為“主機(jī)”,主機(jī)的主體則是主機(jī)板。主機(jī)板上主要有CPU插座、芯片組、內(nèi)存插槽、系統(tǒng)BIOS、CMOS、總線擴(kuò)展槽、串行/并行接口、各種跳線和一些輔助電路等硬件。 1.7 計(jì)算機(jī)中有哪些常用的數(shù)制和碼制?如何進(jìn)行數(shù)制之間的轉(zhuǎn)換? 【解答】數(shù)值數(shù)據(jù)經(jīng)常用二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制;字符數(shù)據(jù)使用ASCII碼;表示十進(jìn)制數(shù)字用BCD碼。 (1)十進(jìn)制到二進(jìn)制:整數(shù)部分連續(xù)除以2后“倒取余”,小數(shù)部分連續(xù)乘以2后“正取整”; (2)二進(jìn)制到十進(jìn)制:將二進(jìn)制數(shù)按權(quán)展開(kāi)即可。 (3)二進(jìn)制到八進(jìn)制:將3位二進(jìn)制一組對(duì)應(yīng)1位八進(jìn)制數(shù)碼。 (4)八進(jìn)制到二進(jìn)制:將1位八進(jìn)制數(shù)碼對(duì)應(yīng)3位二進(jìn)制數(shù)碼。 十六進(jìn)制與二進(jìn)制間轉(zhuǎn)換與八進(jìn)制與二進(jìn)制間轉(zhuǎn)換類似,只是比例關(guān)系為1位十六進(jìn)制數(shù)碼對(duì)應(yīng)4位二進(jìn)制數(shù)碼。 1.8 將下列十進(jìn)制數(shù)分別轉(zhuǎn)化為二進(jìn)制數(shù)、十六進(jìn)制數(shù)和壓縮BCD碼。 (1)15.32 (2)325.16 (3)68.31 (4)214.126 【解答】: (1)15.32 = 1111.0101B = F.5H=00010101.00110010BCD。 (2)325.16 = 10000101.0001B = 85.1H= 001100100101.00010110BCD。 (3)68.31 = 1000100.0100B = 64.4H= 01101000.00110001BCD。 (4)214.126 = 11010110.0010B = D6.2H= 001000010100.000100100110BCD。 1.9 將下列二進(jìn)制數(shù)分別轉(zhuǎn)化為十進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)。 (1)10010101 (2)11001010 (3)10111.1101 (4)111001.0101 【解答】 (1) 11001010 = 202 = 312Q = CAH (2) 10111.1101 = 23.8125 = 27.64Q = 17.DH (3) 111001.0101 = 57.625 = 71.24Q = 39.5H 1.10 將下列十六進(jìn)制數(shù)分別轉(zhuǎn)化為二進(jìn)制數(shù)、十進(jìn)制數(shù)。 (1)FAH (2)12B8H (3)5A8.62H (4)2DF.2H 【解答】 (1) FAH = 11111010B = 250 (2) 12B8H = 0001001010111000B = 4792 (3) 5A8.62H = 010110101000.01100010B = 1448.3828125 (4) 2DF.2H = 001011011111.0010B = 735.0078125 1.11 寫出下列帶符號(hào)十進(jìn)制數(shù)的原碼、反碼、補(bǔ)碼表示(采用8位二進(jìn)制數(shù))。 (1)+38 (2)+82 (3)-57 (4)-115 【解答】 (1)X =+38,[X]補(bǔ) = 00100110B (2)X =+82,[X]補(bǔ) = 01010010B (3)X =-57,[X]補(bǔ) = 11000111B (4)X =-115,[X]補(bǔ) = 10001101B 1.12 寫出下列二進(jìn)制數(shù)的補(bǔ)碼表示。 (1)+1010100 (2)+1101101 (3) -0110010 (4) -1001110 【解答】 (1)X = +1010100,[X]補(bǔ) = 01010100B (2)X = +1101101,[X]補(bǔ) = 01101101B (3)X = -0110010,[X]補(bǔ) = 11001110B (4)X = -1001110,[X]補(bǔ) = 10110010B 1.13 已知下列補(bǔ)碼求出其真值。 (1)87H (2)3DH (3)0B62H (4)3CF2H 【解答】 (1) [X]補(bǔ) =87H = 10000111B,符號(hào)位為1,X是負(fù)數(shù),[X]原 =11111001B,X =-79H (2) [X]補(bǔ) =3DH = 00111101B,符號(hào)位為0,X是正數(shù),X = 3DH (3) [X]補(bǔ) =0B62H =0000101101100010B,符號(hào)位為0,X是正數(shù),X = +B62H (4) [X]補(bǔ) =3CF2H = 0011110011110010B,符號(hào)位為0,X是正數(shù),X =3CF2H 1.14 按照字符所對(duì)應(yīng)的ASCII碼表示,查表寫出下列字符的ASCII碼。 A 、g 、W、*、ESC、LF、CR 、% 【解答】 A的ASCII碼為41H;G的ASCII碼為47H;W的ASCII碼為57H;*的ASCII碼為2AH;ESC的ASCII碼為1BH;LF的ASCII碼為0AH;CR的ASCII碼為DH;%的ASCII碼為25H。 1.15 把下列英文單詞轉(zhuǎn)換成ASCII編碼的字符串。 (1)How (2)Great (3)Water (4)Good 【解答】 (1)How的ASCII碼為486F77H; (2)Great的ASCII碼為4772656174H; (3)Water的ASCII碼為5761746572H; (4)Good的ASCII碼為476F6F64H。 習(xí)題2 2.1 8086CPU具有 20 條地址線,可直接尋址 1MB 容量的內(nèi)存空間,在訪問(wèn)I/O端口時(shí),使用地址線 16條 ,最多可尋址 64K 個(gè)I/O端口。 2.2 8086CPU的內(nèi)部結(jié)構(gòu)有何特點(diǎn)?由哪兩部分組成?它們的主要功能是什么? 【解答】8086微處理器是典型的16位微處理器,HMOS工藝制造,集成了2.9萬(wàn)只晶體管,使用單一的+5V電源,有16根數(shù)據(jù)線和20根地址線;通過(guò)其16位的內(nèi)部數(shù)據(jù)通路與設(shè)置指令預(yù)取隊(duì)列的流水線結(jié)構(gòu)結(jié)合起來(lái)而獲得較高的性能。 8086微處理器內(nèi)部安排了兩個(gè)邏輯單元,即執(zhí)行部件EU和總線接口部件BIU。EU主要負(fù)責(zé)指令譯碼、執(zhí)行和數(shù)據(jù)運(yùn)算,包括計(jì)算有效地址;BIU主要完成計(jì)算物理地址、從內(nèi)存中取指令、實(shí)現(xiàn)指令規(guī)定的讀/寫存儲(chǔ)器或外部設(shè)備等信息傳輸類操作。 2.3 8086CPU中的指令隊(duì)列的作用是 預(yù)取指令 ,其長(zhǎng)度是 6 字節(jié)。 2.4 8086CPU內(nèi)部寄存器有哪幾種?各自的特點(diǎn)和作用是什么? 【解答】CPU有14個(gè)內(nèi)部寄存器,可分為3大類:通用寄存器、控制寄存器和段寄存器。 通用寄存器是一種面向寄存器的體系結(jié)構(gòu),操作數(shù)可以直接存放在這些寄存器中,既可減少訪問(wèn)存儲(chǔ)器的次數(shù),又可縮短程序的長(zhǎng)度,提高了數(shù)據(jù)處理速度,占用內(nèi)存空間少。 控制寄存器包括指令指針寄存器IP和標(biāo)志寄存器FLAG:IP用來(lái)指示當(dāng)前指令在代碼段的偏移位置;FLAG用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行的形式。 為了實(shí)現(xiàn)尋址1MB存儲(chǔ)器空間,8086CPU將1MB的存儲(chǔ)空間分成若干個(gè)邏輯段進(jìn)行管理,4個(gè)16位的段寄存器來(lái)存放每一個(gè)邏輯段的段起始地址。 2.5 8086的標(biāo)志寄存器分為 6 個(gè) 狀態(tài) 標(biāo)志位和 3 個(gè) 控制 標(biāo)志位,它們各自的含義和作用是什么? 【解答】標(biāo)志寄存器各標(biāo)志位的含義和作用如下表: 表2-1 標(biāo)志寄存器FLAG中標(biāo)志位的含義和作用 標(biāo)志位 含義 作用 CF 進(jìn)位標(biāo)志 CF=1,指令執(zhí)行結(jié)果在最高位上產(chǎn)生一個(gè)進(jìn)位或借位;CF=0,則無(wú)進(jìn)位或借位產(chǎn)生 PF 奇偶標(biāo)志 PF=1,結(jié)果低8位含偶數(shù)個(gè)1;PF=0,表示結(jié)果低8位含奇數(shù)個(gè)1 AF 輔助進(jìn)位標(biāo)志 AF=1,運(yùn)算結(jié)果的低4位產(chǎn)生了一個(gè)進(jìn)位或借位;AF=0,則無(wú)此進(jìn)位或借位 ZF 零標(biāo)志 ZF=1,運(yùn)算結(jié)果為零;ZF=0,則運(yùn)算結(jié)果不為零 SF 符號(hào)標(biāo)志 SF=1,運(yùn)算結(jié)果為負(fù)數(shù);SF=0,則結(jié)果為正數(shù) OF 溢出標(biāo)志 OF=1,帶符號(hào)數(shù)在進(jìn)行運(yùn)算時(shí)產(chǎn)生了溢出;OF=0,則無(wú)溢出 TF 陷阱標(biāo)志 TF=1,8086CPU處于單步工作方式;TF=0,8086CPU正常執(zhí)行程序 IF 中斷允許標(biāo)志 IF=1,允許CPU接受外部從INTR引腳上發(fā)來(lái)的可屏蔽中斷請(qǐng)求信號(hào);IF=0,則禁止接受可屏蔽中斷請(qǐng)求 DF 方向標(biāo)志 DF=1,字符串操作指令按遞減的順序?qū)ψ址M(jìn)行處理;DF=0,字符串操作指令按遞增的順序進(jìn)行處理 2.6 已知堆棧段寄存器(SS)=2400H,堆棧指針(SP)=1200H,計(jì)算該堆棧棧頂?shù)膶?shí)際地址,并畫出堆棧示意圖。 【解答】(SS)=2400H,(SP)=1200H圖2-1 堆棧示意圖 SP 堆棧段 棧底 ;PA=(SS)10H+(SP)= 2400H10H+1200H = 25200H。 2.7 8086的存儲(chǔ)器采用 奇偶存儲(chǔ)體 結(jié)構(gòu),數(shù)據(jù)在內(nèi)存中的存放規(guī)定是 低字節(jié)存放在低地址中,高字節(jié)存放在高地址中,以低地址為字的地址,規(guī)則字是指 低字節(jié)地址為偶地址的字,非規(guī)則字是指 低字節(jié)的地址為奇地址的字。 2.8 解釋邏輯地址、偏移地址、有效地址、物理地址的含義,8086存儲(chǔ)器的物理地址是如何形成的?怎樣進(jìn)行計(jì)算? 【解答】邏輯地址:表示為段地址:偏移地址,書寫程序時(shí)用到,一個(gè)存儲(chǔ)單元可對(duì)應(yīng)出多個(gè)邏輯地址; 偏移地址:是某一存儲(chǔ)單元距離所在邏輯段的開(kāi)始地址的字節(jié)個(gè)數(shù)。 有效地址:是指令中計(jì)算出的要訪問(wèn)的存儲(chǔ)單元的偏移地址。 物理地址:是CPU訪問(wèn)存儲(chǔ)器時(shí)用到的20位地址,是存儲(chǔ)單元的唯一的編號(hào)。 物理地址計(jì)算公式:物理地址 = 段地址10H+有效地址(或偏移地址) 2.9 8086系統(tǒng)中的存儲(chǔ)器分為幾個(gè)邏輯段?各段之間的關(guān)系如何?每個(gè)段寄存器的作用是什么? 【解答】8086CPU將1MB的存儲(chǔ)空間分成邏輯段來(lái)進(jìn)行管理:每個(gè)邏輯段最小為16B。所以最多可分成64K個(gè)段;每個(gè)邏輯段最大為64KB,最少可分成16個(gè)邏輯段。各段的起始位置由程序員指出,可以彼此分離,也可以首尾相連、重疊或部分重疊。 4個(gè)16位的段寄存器用來(lái)存放每一個(gè)邏輯段的段起始地址:CS中為代碼段的起始地址;DS中為數(shù)據(jù)段的起始地址;SS中為堆棧段的起始地址;ES中為附加段的起始地址。 2.10 I/O端口有哪兩種編址方式,各自的優(yōu)缺點(diǎn)是什么? 【解答】I/O端口有兩種編址方式:統(tǒng)一編址和獨(dú)立編址。 統(tǒng)一編址方式是將I/O端口與內(nèi)存單元統(tǒng)一起來(lái)進(jìn)行編號(hào),即包括在1MB的存儲(chǔ)器空間中,看作存儲(chǔ)器單元,每個(gè)端口占用一個(gè)存儲(chǔ)單元地址。該方式主要優(yōu)點(diǎn)是不需要專門的I/O指令,對(duì)I/O端口操作的指令類型多;缺點(diǎn)是端口要占用部分存儲(chǔ)器的地址空間,不容易區(qū)分是訪問(wèn)存儲(chǔ)器還是外部設(shè)備。 獨(dú)立編址的端口單獨(dú)構(gòu)成I/O地址空間,不占用存儲(chǔ)器地址。優(yōu)點(diǎn)是地址空間獨(dú)立,控制電路和地址譯碼電路簡(jiǎn)單,采用專用的I/O指令,使得端口操作的指令在形式上與存儲(chǔ)器操作指令有明顯區(qū)別,程序容易閱讀;缺點(diǎn)是指令類別少,一般只能進(jìn)行傳送操作。 2.11 8086的最大工作模式和最小各種模式的主要區(qū)別是什么?如何進(jìn)行控制? 【解答】?jī)煞N模式的主要區(qū)別是: 8086工作在最小模式時(shí),系統(tǒng)只有一個(gè)微處理器,且系統(tǒng)所有的控制信號(hào)全部由8086 CPU提供;在最大模式時(shí),系統(tǒng)由多個(gè)微處理器/協(xié)處理器構(gòu)成的多機(jī)系統(tǒng),控制信號(hào)通過(guò)總線控制器產(chǎn)生,且系統(tǒng)資源由各處理器共享。 8086CPU工作在哪種模式下通過(guò)CPU的第33條引腳MN/來(lái)控制:MN/=1,系統(tǒng)就處于最小工作模式;MN/=0,系統(tǒng)處于最大工作模式。 2.12 在內(nèi)存有一個(gè)由20個(gè)字節(jié)組成的數(shù)據(jù)區(qū),其起始地址為1100H:0020H。計(jì)算出該數(shù)據(jù)區(qū)在內(nèi)存的首末單元的實(shí)際地址。 【解答】邏輯地址1100H:0020H對(duì)應(yīng)的物理地址為PA=1100H10H+0020H= 11020H,即該數(shù)據(jù)區(qū)在內(nèi)存中的首單元的物理地址為11020H;因?yàn)榇鎯?chǔ)空間中每個(gè)字節(jié)單元對(duì)應(yīng)一個(gè)地址,所以20個(gè)字節(jié)對(duì)應(yīng)20個(gè)地址,則該數(shù)據(jù)區(qū)在內(nèi)存中的末單元的物理地址PA = 11020H+20D = 11020H+14H = 11034H。 2.13 已知兩個(gè)16位的字?jǐn)?shù)據(jù)268AH和357EH,它們?cè)?086存儲(chǔ)器中的地址分別為00120H和00124H,試畫出它們的存儲(chǔ)示意圖。 【解答】存儲(chǔ)示意圖參見(jiàn)圖2-2。 8AH 00120H 50H 00510H 26H 00121H 65H 00511H 00122H 6EH 00512H 00123H 74H 00513H 7EH 00124H 69H 00514H 35H 00125H 75H 00515H 6DH 00516H 圖2-2 數(shù)據(jù)的存儲(chǔ)示意 圖2-3 字符的存儲(chǔ)示意 2.14 找出字符串“Pentium”的ASCII碼,將它們依次存入從00510H開(kāi)始的字節(jié)單元中,畫出它們存放的內(nèi)存單元示意圖。 【解答】存儲(chǔ)示意圖參見(jiàn)圖2-3。 2.15 在內(nèi)存中保存有一個(gè)程序段,其位置為(CS)=33A0H,(IP)=0130H,當(dāng)計(jì)算機(jī)執(zhí)行該程序段指令時(shí),分析實(shí)際啟動(dòng)的物理地址是多少。 【解答】邏輯地址(CS):(IP)= 33A0H:0130H,計(jì)算出對(duì)應(yīng)物理地址PA= (CS)10H+(IP)= 33A0H10H+0130H = 33B30H 2.16 什么是總線周期?8086CPU的讀/寫總線周期各包含多少個(gè)時(shí)鐘周期?什么情況下需要插入等待周期TW,什么情況下會(huì)出現(xiàn)空閑狀態(tài)TI? 【解答】8086CPU經(jīng)外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次信息的輸入或輸出過(guò)程所需要的時(shí)間,稱為總線周期。8086CPU的讀/寫總線周期通常包括T1、T2、T3、T4狀態(tài)4個(gè)時(shí)鐘周期。 在高速的CPU與慢速的存儲(chǔ)器或I/O接口交換信息時(shí),為了防止丟失數(shù)據(jù),會(huì)由存儲(chǔ)器或外設(shè)通過(guò)READY信號(hào)線,在總線周期的T3和T4之間插入1個(gè)或多個(gè)必要的等待狀態(tài)TW,用來(lái)進(jìn)行必要的時(shí)間補(bǔ)償。 在BIU不執(zhí)行任何操作的兩個(gè)總線周期之間會(huì)出現(xiàn)空閑狀態(tài)TI。 2.17 80286CPU的內(nèi)部結(jié)構(gòu)與8086相比,有哪些增加的部件?其主要特點(diǎn)和功能是什么? 【解答】80286 CPU的可編程寄存器在8086寄存器結(jié)構(gòu)的基礎(chǔ)上,增加了一個(gè)16位的機(jī)器狀態(tài)字寄存器MSW。而且為適應(yīng)80286性能的提高,在8086的狀態(tài)標(biāo)志寄存器F中,又增加使用了3個(gè)位,即IOPL—I/O特權(quán)層標(biāo)志(占用12、13位)和NT—嵌套任務(wù)標(biāo)志(占用14位)。NT標(biāo)志位表示當(dāng)前執(zhí)行的任務(wù)嵌套于另一任務(wù)中,IOPL用來(lái)定義當(dāng)前任務(wù)的I/O特權(quán)層。 2.18 簡(jiǎn)述Pentium微處理器的內(nèi)部組成結(jié)構(gòu)和主要部件的功能,Pentium微處理器的主要特點(diǎn)有哪些? 【解答】Pentium微處理器的主要部件包括總線接口部件、指令高速緩存器、數(shù)據(jù)高速緩存器、指令預(yù)取部件與轉(zhuǎn)移目標(biāo)緩沖器、寄存器組、指令譯碼部件、具有兩條流水線的整數(shù)處理部件(U流水線和V流水線)、以及浮點(diǎn)處理部件FPU等。 各主要部件的功能分析如下: (1)整數(shù)處理部件:U流水線和V流水線都可以執(zhí)行整數(shù)指令,U流水線還可執(zhí)行浮點(diǎn)指令。因此能夠在每個(gè)時(shí)鐘周期內(nèi)同時(shí)執(zhí)行兩條整數(shù)指令。 (2)浮點(diǎn)處理部件FPU:高度流水線化的浮點(diǎn)操作與整數(shù)流水線集成在一起。微處理器內(nèi)部流水線進(jìn)一步分割成若干個(gè)小而快的級(jí)段。 (3)獨(dú)立的數(shù)據(jù)和指令高速緩存Cache:兩個(gè)獨(dú)立的8KB指令和8KB數(shù)據(jù)Cache可擴(kuò)展到12KB,允許同時(shí)存取,內(nèi)部數(shù)據(jù)傳輸效率更高。兩個(gè)Cache采用雙路相關(guān)聯(lián)的結(jié)構(gòu),每路128個(gè)高速緩存行,每行可存放32B。數(shù)據(jù)高速緩存兩端口對(duì)應(yīng)U、V流水線。 (4)指令集與指令預(yù)?。褐噶铑A(yù)取緩沖器順序地處理指令地址,直到它取到一條分支指令,此時(shí)存放有關(guān)分支歷史信息的分支目標(biāo)緩沖器BTB將對(duì)預(yù)取到的分支指令是否導(dǎo)致分支進(jìn)行預(yù)測(cè)。 (5)分支預(yù)測(cè):指令預(yù)取處理中增加了分支預(yù)測(cè)邏輯,提供分支目標(biāo)緩沖器來(lái)預(yù)測(cè)程序轉(zhuǎn)移。 Pentium微處理器的主要特點(diǎn)如下: (1)采用超標(biāo)量雙流水線結(jié)構(gòu); (2)采用兩個(gè)彼此獨(dú)立的高速緩沖存儲(chǔ)器; (3)采用全新設(shè)計(jì)的增強(qiáng)型浮點(diǎn)運(yùn)算器(FPU); (4)可工作在實(shí)地址方式、保護(hù)方式、虛擬8086方式以及SMM系統(tǒng)管理方式; (5)常用指令進(jìn)行了固化及微代碼改進(jìn),一些常用的指令用硬件實(shí)現(xiàn)。 2.19 什么是虛擬存儲(chǔ)技術(shù)?該技術(shù)的主要優(yōu)點(diǎn)有那些? 【解答】虛擬存儲(chǔ)技術(shù)是一種存儲(chǔ)管理技術(shù),采用硬件、軟件相結(jié)合的方法,由系統(tǒng)自動(dòng)分批將程序調(diào)入內(nèi)存,不斷地用新的程序段來(lái)覆蓋內(nèi)存中暫時(shí)不用的老程序段。 虛擬存儲(chǔ)技術(shù)的主要優(yōu)點(diǎn)有:(1)擴(kuò)大了程序可訪問(wèn)的存儲(chǔ)空間;(2)便于實(shí)施多任務(wù)的保護(hù)和隔離;(3)便于操作系統(tǒng)實(shí)現(xiàn)內(nèi)存管理。 2.20 簡(jiǎn)要分析Pentium系列微處理器的4種工作方式具備的特點(diǎn)。 【解答】 (1)實(shí)地址方式:系統(tǒng)加電或者復(fù)位時(shí)進(jìn)入實(shí)地址方式,使用16位80X86的尋址方式、存儲(chǔ)器管理和中斷管理;使用20位地址尋址1MB空間,可用32位寄存器執(zhí)行大多數(shù)指令。 (2)保護(hù)方式:支持多任務(wù)運(yùn)行環(huán)境,對(duì)任務(wù)進(jìn)行隔離和保護(hù),進(jìn)行虛擬存儲(chǔ)管理能夠充分發(fā)揮Pentium微處理器的優(yōu)良性能。 (3)虛擬8086方式:是保護(hù)模式下某個(gè)任務(wù)的工作方式,允許運(yùn)行多個(gè)8086程序,使用8086的尋址方式,每個(gè)任務(wù)使用1MB的內(nèi)存空間。 (4)系統(tǒng)管理方式:主要用于電源管理,可使處理器和外設(shè)部件進(jìn)入“休眠”,在有鍵盤按下或鼠標(biāo)移動(dòng)時(shí)“喚醒”系統(tǒng)使之繼續(xù)工作;利用SMM可以實(shí)現(xiàn)軟件關(guān)機(jī)。 習(xí)題3 3.1 簡(jiǎn)要分析8086的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是什么?8086指令系統(tǒng)有哪些尋址方式? 【解答】8086的指令格式由操作碼和操作數(shù)字段組成。 操作碼:要完成的操作。 操作數(shù):參與操作的對(duì)象。 尋址:尋找操作數(shù)或操作數(shù)地址的過(guò)程。 尋址方式:指令中給出的找到操作數(shù)或操作數(shù)地址采用的方式。 8086指令系統(tǒng)的尋址方式主要有立即數(shù)尋址、寄存器尋址、存儲(chǔ)器尋址和I/O端口尋址。其中,存儲(chǔ)器尋址可進(jìn)一步分為直接尋址、寄存器間接尋址、寄存器相對(duì)尋址、基址變址尋址、相對(duì)基址變址尋址;I/O端口指令I(lǐng)N和OUT使用的端口尋址方式有直接尋址和間接尋址。 3.2 設(shè)(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,數(shù)據(jù)變量VAL的偏移地址為0050H,請(qǐng)指出下列指令的源操作數(shù)字段是什么尋址方式?它的物理地址是多少? (1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H] (4) MOV AX,VAL (5) MOV AX,[BX] (6) MOV AX,ES:[BX] (7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10] (10) MOV AX,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,VAL[BX][SI] 【解答】 (1) MOV AX,21H 立即尋址,源操作數(shù)直接放在指令中 (2) MOV AX,BX 寄存器尋址,源操作數(shù)放在寄存器BX中 (3) MOV AX,[1000H] 直接尋址,EA = 1000H,PA =(DS)10H+EA = 2000H10H+1000H = 21000H (4) MOV AX,VAL 直接尋址,EA = [VAL] = 0050H,PA =(DS)10H+EA = 2000H10H+0050H = 20050H (5) MOV AX,[BX] 寄存器間接尋址,EA =(BX)= 0100H,PA =(DS)10H+EA = 2000H10H+0100H = 20100H (6) MOV AX,ES:[BX] 寄存器間接尋址,EA =(BX)= 0100H,PA =(ES)10H+EA = 2100H10H+0100H = 21100H (7) MOV AX,[BP] 寄存器間接尋址,EA =(BP)= 0010H,PA =(SS)10H+EA = 1500H10H+0010H = 15010H (8) MOV AX,[SI] 寄存器間接尋址,EA =(SI)= 00A0H,PA =(DS)10H+EA = 2000H10H+00A0H = 200A0H (9) MOV AX,[BX+10] 相對(duì)寄存器尋址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)10H+EA = 2000H10H+010AH = 2010AH (10) MOV AX,VAL[BX] 相對(duì)寄存器尋址,EA =(BX)+[VAL]= 0100H+0050H= 0150H,PA =(DS)10H+EA = 2000H10H+0150H = 20150H (11) MOV AX,[BX][SI] 基址變址尋址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)10H+EA = 2000H10H+01A0H = 201A0H (12) MOV AX,VAL[BX][SI] 相對(duì)基址變址尋址,EA = (BX)+(SI)+[VAL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)10H+EA = 2000H10H+01F0H = 201F0H 3.3 給定寄存器及存儲(chǔ)單元的內(nèi)容為:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。試說(shuō)明下列各條指令執(zhí)行完后,AX寄存器中保存的內(nèi)容是什么。 (1) MOV AX,1200H (2) MOV AX,BX (3) MOV AX,[1200H] (4) MOV AX,[BX] (5) MOV AX,1100H[BX] (6) MOV AX,[BX][SI] 【解答】 (1) MOV AX,1200H ;執(zhí)行后,(AX)= 1200H (2) MOV AX,BX ;執(zhí)行后,(AX)= (BX)= 0100H (3) MOV AX,[1200H] 直接尋址,EA = [VAL] = 1200H,PA =(DS)10H+EA = 2000H10H+1200H = 21200H,執(zhí)行后,(AX)= B61AH (4) MOV AX,[BX] EA = (BX)= 0100H,PA =(DS)10H+EA = 2000H10H+0100H = 20100H,執(zhí)行后,(AX)= 5132H (5) MOV AX,1100H[BX] EA =(BX)+1100H = 0100H+1100H = 1200H,PA =(DS)10H+EA = 2000H10H+1200H = 21200H,執(zhí)行后,(AX)= B61AH (6) MOV AX,[BX][SI] EA =(BX)+(SI)= 0100H+0002H = 0102H,PA =(DS)10H+EA = 2000H10H+0102H = 20102H,執(zhí)行后,(AX)= 29D1H 3.4 分析下列指令的正誤,對(duì)于錯(cuò)誤的指令要說(shuō)明原因并加以改正。 (1) MOV AH,BX (2) MOV [BX],[SI] (3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX (5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI] (7) MOV CS,AX (8) MOV DS,BP 【解答】 (1) MOV AH,BX 錯(cuò)誤,寄存器類型不匹配,可改為MOV AX,BX (2) MOV [BX],[SI] 錯(cuò)誤,兩個(gè)操作數(shù)不能都為存儲(chǔ)單元,可改為MOV BX,[SI]或MOV [BX],SI (3) MOV AX,[SI][DI] 錯(cuò)誤,尋址方式中只能出現(xiàn)一個(gè)變址寄存器,可改為MOV AX,[BX][DI]。 (4) MOV MYDAT[BX][SI],ES:AX 錯(cuò)誤,AX簽不能有段跨越前綴,去掉ES:,改為MOV MYDAT[BX][SI],AX (5) MOV BYTE PTR[BX],1000 錯(cuò)誤,1000超出字節(jié)空間存儲(chǔ)范圍 (6) MOV BX,OFFSET MAYDAT[SI] ;正確 (7) MOV CS,AX 錯(cuò)誤,MOV指令CS不能做目的操作數(shù),可改為MOV DS,AX (8) MOV DS,BP ;正確 注:本題錯(cuò)誤改正部分有的答案并不唯一,可參考原題題意改成合法形式。 3.5 設(shè)VAR1、VAR2為字變量,LAB為標(biāo)號(hào),分析下列指令的錯(cuò)誤之處并加以改正。 (1) ADD VAR1,VAR2 (2) MOV AL,VAR2 (3) SUB AL,VAR1 (4) JMP LAB[SI] (5) JNZ VAR1 (6) JMP NEAR LAB 【解答】 (1) ADD VAR1,VAR2 錯(cuò)誤,兩個(gè)操作數(shù)不能都為存儲(chǔ)單元,可改為 MOV BX,VAR2 ADD VAR1,BX (2) MOV AL,VAR2 錯(cuò)誤,數(shù)據(jù)類型不匹配,可改為MOV AX,VAR2 (3) SUB AL,VAR1 錯(cuò)誤,數(shù)據(jù)類型不匹配,可改為SUB AX,VAR1 (4) JMP LAB[SI] 錯(cuò)誤,寄存器相對(duì)尋址形式中不能用標(biāo)號(hào)做位移量,可改為JMP VAR1[SI] (5) JNZ VAR1 錯(cuò)誤,條件跳轉(zhuǎn)指令只能進(jìn)行段內(nèi)短跳轉(zhuǎn),所以后面只能跟短標(biāo)號(hào)??筛臑镴NZ LAB (6) JMP NEAR LAB 錯(cuò)誤,缺少運(yùn)算符PTR,可改為JMP NEAR PTR LAB 注:本題錯(cuò)誤改正部分有的答案并不唯一,可參考原題題意改成合法形式。 3.6 寫出能夠完成下列操作的8086CPU指令。 (1) 把4629H傳送給AX寄存器; (2) 從AX寄存器中減去3218H; (3) 把BUF的偏移地址送入BX中。 【解答】 (1) MOV AX,4629H (2) SUB AX,3218H (3) LEA BX,BUF 3.7 根據(jù)以下要求寫出相應(yīng)的匯編語(yǔ)言指令。 (1) 把BX和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中; (2) 用BX和SI的基址變址尋址方式,把存儲(chǔ)器中的一個(gè)字節(jié)與AL內(nèi)容相加,并保存在AL寄存器中; (3) 用寄存器BX和位移量21B5H的變址尋址方式把存儲(chǔ)器中的一個(gè)字和(CX)相加,并把結(jié)果送回存儲(chǔ)器單元中; (4) 用位移量2158H的直接尋址方式把存儲(chǔ)器中的一個(gè)字與數(shù)3160H相加,并把結(jié)果送回該存儲(chǔ)器中; (5) 把數(shù)25H與(AL)相加,結(jié)果送回寄存器AL中。 【解答】 (1) ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD 21B5H[BX],CX (4) ADD WORD PTR [2158H],3160H (5) ADD AL,25H 3.8 寫出將首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到CX寄存器的指令序列,要求分別使用以下幾種尋址方式: (1) 以BX的寄存器間接尋址 (2) 以BX的寄存器相對(duì)尋址 (3) 以BX、SI的基址變址尋址 【解答】 (1) LEA BX,BLOCK+10 MOV CX,[BX] (2) LEA BX,BLOCK MOV CX,10[BX] (3) LEA BX,BLOCK MOV SI,10 MOV CX,[BX][SI] 3.9 執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么? TABLE DB 10,20,30,40,50 ENTRY DW 3 …… MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] AX= 【解答】AX= 3228H 3.10 下面是將內(nèi)存一字節(jié)數(shù)據(jù)高4位和低4位互換并放回原位置的程序,找出錯(cuò)誤并改正。 DATA SEGMENT DD1 DB 23H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,OFFSET DD1 MOV AL,[SI] MOV CL,4 RCR AL,CL MOV [SI],AL MOV AH,4CH INT 21H CODE ENDS END START 【解答】程序第8行錯(cuò)誤:LEA SI,OFFSET DD1,應(yīng)去掉OFFSET; 程序第10行錯(cuò)誤:RCR AL,CL,應(yīng)使用ROR或ROL,改為ROR AL,CL 3.11 已知用寄存器BX作地址指針,自BUF所指的內(nèi)存單元開(kāi)始連續(xù)存放著3個(gè)無(wú)符號(hào)數(shù)字?jǐn)?shù)據(jù),編程序求它們的和,并將結(jié)果存放在這3個(gè)數(shù)之后。 【解答】參考程序如下: LEA BX,BUF MOV AX,[BX] ADD AX,[BX+2] ADD AX,[BX+4] MOV [BX+6],AX 3.12 分析匯編語(yǔ)言源程序應(yīng)該由哪些邏輯段組成?各段的作用是什么?語(yǔ)句標(biāo)號(hào)和變量應(yīng)具備哪3種屬性? 【解答】匯編語(yǔ)言源程序應(yīng)該由若干個(gè)邏輯段組成,可以有若干個(gè)數(shù)據(jù)段、代碼段、堆棧段和附加數(shù)據(jù)段,至少要有一個(gè)代碼段。各段的作用如下: (1)代碼段用來(lái)存放程序和常數(shù)。 (2)數(shù)據(jù)段用于數(shù)據(jù)的保存。 (3)堆棧段用于保護(hù)數(shù)據(jù),尤其在子程序調(diào)用、中斷過(guò)程中進(jìn)行現(xiàn)場(chǎng)信息保護(hù)。 (4)附加數(shù)據(jù)段用于數(shù)據(jù)的保存。 語(yǔ)句標(biāo)號(hào)和變量應(yīng)具備的3種屬性:段屬性、偏移屬性和類型屬性。 3.13 執(zhí)行完下列程序后,回答指定的問(wèn)題。 MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX ADD BX,2 LOOP LP 問(wèn):(1) 該程序的功能是 。 (2) 程序執(zhí)行完成后,(AX)= 。 【解答】 (1)完成0到100間所有偶數(shù)求和的功能。 (2)2550 3.14 編寫程序,計(jì)算下面函數(shù)的值。 【解答】 DATA SEGMENT X DW 34 S DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,X ;將X送到AX中 CMP AX,0 ;(AX)>0嗎? JL DOUB ;是,轉(zhuǎn)向doub CMP AX,10 ;否,(ax)<10嗎? JLE TRIB ;是,轉(zhuǎn)向trib SAL AX,1 ;否,乘以4 SAL AX,1 JMP EXIT DOUB: SAL AX,1 ;乘以2 JMP EXIT TRIB: SAL AX,1 ;乘以3 ADD AX,X EXIT: MOV S,AX ;保存結(jié)果 MOV AH,4CH ;結(jié)束 INT 21H CODE ENDS END START 注意,在比較的過(guò)程中使用的是針對(duì)帶符號(hào)數(shù)的跳轉(zhuǎn)指令,χ應(yīng)該看作帶符號(hào)數(shù)。程序中還用了移位指令代替了乘法指令。 3.15 從鍵盤輸入一系列字符,以回車符結(jié)束,編程統(tǒng)計(jì)其中非數(shù)字字符的個(gè)數(shù)。 【解答】 DATA SEGMENT BLOCK DB 100 DUP (?) COUNT DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCK LP: MOV AH,1 INT 21H CMP AL,0DH JZ EXIT MOV [SI],AL CMP AL,30H JAE NEXT CMP AL,39H JBE NEXT INC DL NEXT: INC SI JMP LP EXIT: MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS END START 3.16 已知在內(nèi)存中從BLOCK單元起存放有20個(gè)帶符號(hào)字節(jié)數(shù)據(jù),統(tǒng)計(jì)其中負(fù)數(shù)的個(gè)數(shù)并放入COUNT單元。 【解答】 DATA SEGMENT BLOCK DB -7,1,12,-90,-70,34,-1,56,45,-12 DB -3,-4,23,0,12,11,-9,-8,67,-56 CN EQU $-BLOCK COUNT DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCK MOV CX,CN LP: MOV AL,[SI] TEST AL,80H JZ NEXT INC DL NEXT: INC SI LOOP LP MOV COUNT,DL MOV AH,4CH INT 21H CODE ENDS END START 3.17 從鍵盤輸入一個(gè)大寫英文字母,將其轉(zhuǎn)換為小寫字母并顯示出來(lái),要求輸入其它字符時(shí),能夠有出錯(cuò)提示信息。 【解答】 DATA SEGMENT MESS DB INPUP ERROR!,0AH,0DH,$ DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H CMP AL,A JB ERR CMP AL,Z JA ERR ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXIT ERR: MOV DX,OFFSET MESS MOV AH,09H INT 21H EXIT: MOV AH,02H INT 21H CODE ENDS END START 3.18 比較宏指令與子程序,它們有何異同?它們的本質(zhì)區(qū)別是什么? 【解答】宏與子程序兩者的相同之處在于都是用來(lái)處理在編程過(guò)程中多次使用的功能程序的方法,兩者均能簡(jiǎn)化源程序。 兩者的區(qū)別在于: (1)宏調(diào)用通過(guò)宏指令名進(jìn)行,匯編時(shí),隨時(shí)調(diào)用隨時(shí)展開(kāi),并不簡(jiǎn)化目標(biāo)程序;子程序調(diào)用是在程序執(zhí)行期間執(zhí)行CALL指令,代碼只在目標(biāo)程序中出現(xiàn)一次,所以也簡(jiǎn)化了目標(biāo)程序。 (2)宏調(diào)用時(shí)的參數(shù)由匯編程序通過(guò)實(shí)參轉(zhuǎn)換成形參的方式傳遞,具有很大的靈活性。宏定義中允許設(shè)置若干形式參數(shù)代替數(shù)值、指令、寄存器、各種字符串等。宏調(diào)用時(shí)可用程序所需要的實(shí)際參數(shù)來(lái)替換,使編程人員感覺(jué)非常靈活;而子程序的參數(shù)傳遞要麻煩得多。 (3)宏調(diào)用在匯編時(shí)完成,不需要額外的時(shí)間開(kāi)銷;子程序調(diào)用和子程序返回都需要時(shí)間,還涉及堆棧操作。 故若優(yōu)先考慮速度,用宏指令;若優(yōu)先考慮存儲(chǔ)空間,用子程序。 3.19 試定義將一位十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼的宏指令。 【解答】 HEXTOA MACRO AND AL,0FH CMP AL,9 JNA HEXTOA1 ADD AL,7H HEXTOA1:ADD AL,30H ENDM 3.20 試定義一個(gè)字符串搜索宏指令,要求文本首地址和字符串首地址用形式參數(shù)。 【解答】 SCANC MACRO ADDRESS,CHAR1 MOV SI,ADDRESS MOV AL,[SI] MOV DI,CHAR1 REPNZ SCASB ENDM 習(xí)題4 4.1 半導(dǎo)體存儲(chǔ)器有哪些優(yōu)點(diǎn)?SRAM、DRAM各自有何特點(diǎn)? 【解答】特點(diǎn)是容量大、存取速度快、體積小、功耗低、集成度高、價(jià)格便宜。 SRAM存放的信息在不停電的情況下能長(zhǎng)時(shí)間保留不變,只要不掉電所保存的信息就不會(huì)丟失。而DRAM保存的內(nèi)容即使在不掉電的情況下隔一定時(shí)間后也會(huì)自動(dòng)消失,因此要定時(shí)對(duì)其進(jìn)行刷新。 4.2 ROM、PROM、EPROM、E2PROM、Flash Memory各有何特點(diǎn)?用于何種場(chǎng)合? 【解答】掩膜式ROM中的信息是在生產(chǎn)廠家制造時(shí)寫入的。制成后,信息只能讀出不能改寫。 PROM中晶體管的集電極接VCC,基極連接行線,發(fā)射極通過(guò)一個(gè)熔絲與列線相連。出廠時(shí),晶體管陣列的熔絲完好。寫入信息時(shí),選中某個(gè)晶體管,輸入高低電平保留或燒斷熔絲對(duì)應(yīng)1和0。燒斷熔絲不能再?gòu)?fù)原,因此只能進(jìn)行一次編程。 EPROM芯片的頂部開(kāi)有一石英窗口,通過(guò)紫外線的照射可擦除片內(nèi)原有信息,一塊芯片可多次使用,缺點(diǎn)是只能進(jìn)行整片寫。 E2PROM是可用電擦除和編程的只讀存儲(chǔ)器,能在線讀寫,斷電情況信息不丟失,能隨機(jī)改寫;其擦寫次數(shù)可達(dá)1萬(wàn)次以上,數(shù)據(jù)可保存10年以上??勺鳛橄到y(tǒng)中可靠保存數(shù)據(jù)的存儲(chǔ)器。 Flash Memory是新型的半導(dǎo)體存儲(chǔ)器,可實(shí)現(xiàn)大規(guī)模電擦除,擦除功能可迅速清除整個(gè)存儲(chǔ)器的所有內(nèi)容;可高速編程;閃速存儲(chǔ)器可重復(fù)使用,適用于文件需要經(jīng)常更新的可重復(fù)編程應(yīng)用中。對(duì)于需要實(shí)施代碼或數(shù)據(jù)更新的嵌入性應(yīng)用是一種理想的存儲(chǔ)器。 4.3 動(dòng)態(tài)RAM為什么需要經(jīng)常刷新?微機(jī)系統(tǒng)如何進(jìn)行動(dòng)態(tài)RAM的刷新? 【解答】動(dòng)態(tài)RAM是利用電容存儲(chǔ)電荷的原理來(lái)保存信息的,由于電容會(huì)泄漏放電,所以,為保持電容中的電荷不丟失,必須對(duì)動(dòng)態(tài)RAM不斷進(jìn)行刷新。 DRAM的刷新常采用兩種方法:一是利用專門的DRAM控制器實(shí)現(xiàn)刷新控制,如Intel 8203控制器;二是在每個(gè)DRAM芯片上集成刷新控制電路,使存儲(chǔ)器件自身完成刷新,如Intel 2186/2187。 4.4 常用的存儲(chǔ)器地址譯碼方式有哪幾種?各自的特點(diǎn)是什么? 【解答】 線選譯碼:連接簡(jiǎn)單,無(wú)須專門的譯碼電路;缺點(diǎn)是地址不連續(xù),CPU尋址能力的利用率太低,會(huì)造成大量的地址空間浪費(fèi)。 全譯碼:將低位地址總線直接連至各芯片的地址線,余下的高位地址總線全部參加譯碼,譯碼輸出作為各芯片的片選信號(hào)??梢蕴峁?duì)全部存儲(chǔ)空間的尋址能力。 部分譯碼:該方法只對(duì)部分高位地址總線進(jìn)行譯碼,以產(chǎn)生片選信號(hào),剩余高位線可空閑或直接用作其它存儲(chǔ)芯片的片選控制信號(hào)。 4.5 半導(dǎo)體存儲(chǔ)器在與微處理器連接時(shí)應(yīng)注意哪些問(wèn)題? 【解答】半導(dǎo)體存儲(chǔ)器與CPU連接前,要確定內(nèi)存容量的大小并選擇存儲(chǔ)器芯片的容量大小,要考慮存儲(chǔ)器地址分配問(wèn)題;在進(jìn)行存儲(chǔ)器地址分配時(shí),要將ROM和RAM分區(qū)域安排。 4.6 計(jì)算機(jī)在什么情況下需要擴(kuò)展內(nèi)存?擴(kuò)展內(nèi)存需要注意- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微型計(jì)算機(jī)原理與接口技術(shù) 微型計(jì)算機(jī) 原理 接口 技術(shù) 第三 習(xí)題 答案
鏈接地址:http://appdesigncorp.com/p-9769150.html