《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案
《《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)習(xí)題答案(44頁珍藏版)》請?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)由控制器來控制程序和數(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)簡單;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萬晶體管,主頻20MHz。 第四代 (1985~1992年) 32位 微處理器 Intel 80386集成27.5萬個(gè)晶體管,主頻33MHz,4GB物理尋址。有分段存儲(chǔ)和分頁存儲(chǔ)部件,可管理64TB虛擬存儲(chǔ)空間。Intel 80486集成120萬個(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ù)加密、視頻壓縮和對等網(wǎng)絡(luò)等方面性能有較大幅度提高。 第六代 (2000年以后) 64位 微處理器Merced 由Intel公司與HP公司聯(lián)手開發(fā)的Merced采用全新的IA-64結(jié)構(gòu)設(shè)計(jì),是一種采用長指令字、指令預(yù)測、分支消除、推理裝入和其他一些先進(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)主要有:字長、主頻、內(nèi)存容量、指令數(shù)、基本指令執(zhí)行時(shí)間、可靠性、兼容性、性能價(jià)格比等。 1.4 常見的微型計(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ǔ)器:用來存放計(jì)算機(jī)工作過程中需要的操作數(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)總線?說明數(shù)據(jù)總線、地址總線、控制總線各自的作用。 【解答】系統(tǒng)總線是CPU與其它部件之間傳送數(shù)據(jù)、地址和控制信息的公共通道。 (1)數(shù)據(jù)總線:用來傳送數(shù)據(jù),主要實(shí)現(xiàn)CPU與內(nèi)存儲(chǔ)器或I/O設(shè)備之間、內(nèi)存儲(chǔ)器與I/O設(shè)備或外存儲(chǔ)器之間的數(shù)據(jù)傳送。 (2)地址總線:用來傳送地址。主要實(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)展開即可。 (3)二進(jìn)制到八進(jìn)制:將3位二進(jìn)制一組對應(yīng)1位八進(jìn)制數(shù)碼。 (4)八進(jìn)制到二進(jìn)制:將1位八進(jìn)制數(shù)碼對應(yīng)3位二進(jìn)制數(shù)碼。 十六進(jìn)制與二進(jìn)制間轉(zhuǎn)換與八進(jìn)制與二進(jìn)制間轉(zhuǎn)換類似,只是比例關(guān)系為1位十六進(jìn)制數(shù)碼對應(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 按照字符所對應(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)存空間,在訪問I/O端口時(shí),使用地址線 16條 ,最多可尋址 64K 個(gè)I/O端口。 2.2 8086CPU的內(nèi)部結(jié)構(gòu)有何特點(diǎn)?由哪兩部分組成?它們的主要功能是什么? 【解答】8086微處理器是典型的16位微處理器,HMOS工藝制造,集成了2.9萬只晶體管,使用單一的+5V電源,有16根數(shù)據(jù)線和20根地址線;通過其16位的內(nèi)部數(shù)據(jù)通路與設(shè)置指令預(yù)取隊(duì)列的流水線結(jié)構(gòu)結(jié)合起來而獲得較高的性能。 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ù)取指令 ,其長度是 6 字節(jié)。 2.4 8086CPU內(nèi)部寄存器有哪幾種?各自的特點(diǎn)和作用是什么? 【解答】CPU有14個(gè)內(nèi)部寄存器,可分為3大類:通用寄存器、控制寄存器和段寄存器。 通用寄存器是一種面向寄存器的體系結(jié)構(gòu),操作數(shù)可以直接存放在這些寄存器中,既可減少訪問存儲(chǔ)器的次數(shù),又可縮短程序的長度,提高了數(shù)據(jù)處理速度,占用內(nèi)存空間少。 控制寄存器包括指令指針寄存器IP和標(biāo)志寄存器FLAG:IP用來指示當(dāng)前指令在代碼段的偏移位置;FLAG用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行的形式。 為了實(shí)現(xiàn)尋址1MB存儲(chǔ)器空間,8086CPU將1MB的存儲(chǔ)空間分成若干個(gè)邏輯段進(jìn)行管理,4個(gè)16位的段寄存器來存放每一個(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,則無進(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,則無此進(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,則無溢出 TF 陷阱標(biāo)志 TF=1,8086CPU處于單步工作方式;TF=0,8086CPU正常執(zhí)行程序 IF 中斷允許標(biāo)志 IF=1,允許CPU接受外部從INTR引腳上發(fā)來的可屏蔽中斷請求信號(hào);IF=0,則禁止接受可屏蔽中斷請求 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ǔ)單元可對應(yīng)出多個(gè)邏輯地址; 偏移地址:是某一存儲(chǔ)單元距離所在邏輯段的開始地址的字節(jié)個(gè)數(shù)。 有效地址:是指令中計(jì)算出的要訪問的存儲(chǔ)單元的偏移地址。 物理地址:是CPU訪問存儲(chǔ)器時(shí)用到的20位地址,是存儲(chǔ)單元的唯一的編號(hào)。 物理地址計(jì)算公式:物理地址 = 段地址10H+有效地址(或偏移地址) 2.9 8086系統(tǒng)中的存儲(chǔ)器分為幾個(gè)邏輯段?各段之間的關(guān)系如何?每個(gè)段寄存器的作用是什么? 【解答】8086CPU將1MB的存儲(chǔ)空間分成邏輯段來進(jìn)行管理:每個(gè)邏輯段最小為16B。所以最多可分成64K個(gè)段;每個(gè)邏輯段最大為64KB,最少可分成16個(gè)邏輯段。各段的起始位置由程序員指出,可以彼此分離,也可以首尾相連、重疊或部分重疊。 4個(gè)16位的段寄存器用來存放每一個(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)一起來進(jìn)行編號(hào),即包括在1MB的存儲(chǔ)器空間中,看作存儲(chǔ)器單元,每個(gè)端口占用一個(gè)存儲(chǔ)單元地址。該方式主要優(yōu)點(diǎn)是不需要專門的I/O指令,對I/O端口操作的指令類型多;缺點(diǎn)是端口要占用部分存儲(chǔ)器的地址空間,不容易區(qū)分是訪問存儲(chǔ)器還是外部設(shè)備。 獨(dú)立編址的端口單獨(dú)構(gòu)成I/O地址空間,不占用存儲(chǔ)器地址。優(yōu)點(diǎn)是地址空間獨(dú)立,控制電路和地址譯碼電路簡單,采用專用的I/O指令,使得端口操作的指令在形式上與存儲(chǔ)器操作指令有明顯區(qū)別,程序容易閱讀;缺點(diǎn)是指令類別少,一般只能進(jìn)行傳送操作。 2.11 8086的最大工作模式和最小各種模式的主要區(qū)別是什么?如何進(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)通過總線控制器產(chǎn)生,且系統(tǒng)資源由各處理器共享。 8086CPU工作在哪種模式下通過CPU的第33條引腳MN/來控制: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對應(yīng)的物理地址為PA=1100H10H+0020H= 11020H,即該數(shù)據(jù)區(qū)在內(nèi)存中的首單元的物理地址為11020H;因?yàn)榇鎯?chǔ)空間中每個(gè)字節(jié)單元對應(yīng)一個(gè)地址,所以20個(gè)字節(jié)對應(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,它們在8086存儲(chǔ)器中的地址分別為00120H和00124H,試畫出它們的存儲(chǔ)示意圖。 【解答】存儲(chǔ)示意圖參見圖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開始的字節(jié)單元中,畫出它們存放的內(nèi)存單元示意圖。 【解答】存儲(chǔ)示意圖參見圖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ì)算出對應(yīng)物理地址PA= (CS)10H+(IP)= 33A0H10H+0130H = 33B30H 2.16 什么是總線周期?8086CPU的讀/寫總線周期各包含多少個(gè)時(shí)鐘周期?什么情況下需要插入等待周期TW,什么情況下會(huì)出現(xiàn)空閑狀態(tài)TI? 【解答】8086CPU經(jīng)外部總線對存儲(chǔ)器或I/O端口進(jìn)行一次信息的輸入或輸出過程所需要的時(shí)間,稱為總線周期。8086CPU的讀/寫總線周期通常包括T1、T2、T3、T4狀態(tài)4個(gè)時(shí)鐘周期。 在高速的CPU與慢速的存儲(chǔ)器或I/O接口交換信息時(shí),為了防止丟失數(shù)據(jù),會(huì)由存儲(chǔ)器或外設(shè)通過READY信號(hào)線,在總線周期的T3和T4之間插入1個(gè)或多個(gè)必要的等待狀態(tài)TW,用來進(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用來定義當(dāng)前任務(wù)的I/O特權(quán)層。 2.18 簡述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ù)高速緩存兩端口對應(yīng)U、V流水線。 (4)指令集與指令預(yù)?。褐噶铑A(yù)取緩沖器順序地處理指令地址,直到它取到一條分支指令,此時(shí)存放有關(guān)分支歷史信息的分支目標(biāo)緩沖器BTB將對預(yù)取到的分支指令是否導(dǎo)致分支進(jìn)行預(yù)測。 (5)分支預(yù)測:指令預(yù)取處理中增加了分支預(yù)測邏輯,提供分支目標(biāo)緩沖器來預(yù)測程序轉(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)存,不斷地用新的程序段來覆蓋內(nèi)存中暫時(shí)不用的老程序段。 虛擬存儲(chǔ)技術(shù)的主要優(yōu)點(diǎn)有:(1)擴(kuò)大了程序可訪問的存儲(chǔ)空間;(2)便于實(shí)施多任務(wù)的保護(hù)和隔離;(3)便于操作系統(tǒng)實(shí)現(xiàn)內(nèi)存管理。 2.20 簡要分析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)境,對任務(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 簡要分析8086的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是什么?8086指令系統(tǒng)有哪些尋址方式? 【解答】8086的指令格式由操作碼和操作數(shù)字段組成。 操作碼:要完成的操作。 操作數(shù):參與操作的對象。 尋址:尋找操作數(shù)或操作數(shù)地址的過程。 尋址方式:指令中給出的找到操作數(shù)或操作數(shù)地址采用的方式。 8086指令系統(tǒng)的尋址方式主要有立即數(shù)尋址、寄存器尋址、存儲(chǔ)器尋址和I/O端口尋址。其中,存儲(chǔ)器尋址可進(jìn)一步分為直接尋址、寄存器間接尋址、寄存器相對尋址、基址變址尋址、相對基址變址尋址;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,請指出下列指令的源操作數(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] 相對寄存器尋址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)10H+EA = 2000H10H+010AH = 2010AH (10) MOV AX,VAL[BX] 相對寄存器尋址,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] 相對基址變址尋址,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。試說明下列各條指令執(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 分析下列指令的正誤,對于錯(cuò)誤的指令要說明原因并加以改正。 (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ò)誤,寄存器相對尋址形式中不能用標(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)的匯編語言指令。 (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的寄存器相對尋址 (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)存單元開始連續(xù)存放著3個(gè)無符號(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īng)該由哪些邏輯段組成?各段的作用是什么?語句標(biāo)號(hào)和變量應(yīng)具備哪3種屬性? 【解答】匯編語言源程序應(yīng)該由若干個(gè)邏輯段組成,可以有若干個(gè)數(shù)據(jù)段、代碼段、堆棧段和附加數(shù)據(jù)段,至少要有一個(gè)代碼段。各段的作用如下: (1)代碼段用來存放程序和常數(shù)。 (2)數(shù)據(jù)段用于數(shù)據(jù)的保存。 (3)堆棧段用于保護(hù)數(shù)據(jù),尤其在子程序調(diào)用、中斷過程中進(jìn)行現(xiàn)場信息保護(hù)。 (4)附加數(shù)據(jù)段用于數(shù)據(jù)的保存。 語句標(biāo)號(hào)和變量應(yīng)具備的3種屬性:段屬性、偏移屬性和類型屬性。 3.13 執(zhí)行完下列程序后,回答指定的問題。 MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX ADD BX,2 LOOP LP 問:(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 注意,在比較的過程中使用的是針對帶符號(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)換為小寫字母并顯示出來,要求輸入其它字符時(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ū)別是什么? 【解答】宏與子程序兩者的相同之處在于都是用來處理在編程過程中多次使用的功能程序的方法,兩者均能簡化源程序。 兩者的區(qū)別在于: (1)宏調(diào)用通過宏指令名進(jìn)行,匯編時(shí),隨時(shí)調(diào)用隨時(shí)展開,并不簡化目標(biāo)程序;子程序調(diào)用是在程序執(zhí)行期間執(zhí)行CALL指令,代碼只在目標(biāo)程序中出現(xiàn)一次,所以也簡化了目標(biāo)程序。 (2)宏調(diào)用時(shí)的參數(shù)由匯編程序通過實(shí)參轉(zhuǎn)換成形參的方式傳遞,具有很大的靈活性。宏定義中允許設(shè)置若干形式參數(shù)代替數(shù)值、指令、寄存器、各種字符串等。宏調(diào)用時(shí)可用程序所需要的實(shí)際參數(shù)來替換,使編程人員感覺非常靈活;而子程序的參數(shù)傳遞要麻煩得多。 (3)宏調(diào)用在匯編時(shí)完成,不需要額外的時(shí)間開銷;子程序調(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存放的信息在不停電的情況下能長時(shí)間保留不變,只要不掉電所保存的信息就不會(huì)丟失。而DRAM保存的內(nèi)容即使在不掉電的情況下隔一定時(shí)間后也會(huì)自動(dòng)消失,因此要定時(shí)對其進(jìn)行刷新。 4.2 ROM、PROM、EPROM、E2PROM、Flash Memory各有何特點(diǎn)?用于何種場合? 【解答】掩膜式ROM中的信息是在生產(chǎn)廠家制造時(shí)寫入的。制成后,信息只能讀出不能改寫。 PROM中晶體管的集電極接VCC,基極連接行線,發(fā)射極通過一個(gè)熔絲與列線相連。出廠時(shí),晶體管陣列的熔絲完好。寫入信息時(shí),選中某個(gè)晶體管,輸入高低電平保留或燒斷熔絲對應(yīng)1和0。燒斷熔絲不能再復(fù)原,因此只能進(jìn)行一次編程。 EPROM芯片的頂部開有一石英窗口,通過紫外線的照射可擦除片內(nèi)原有信息,一塊芯片可多次使用,缺點(diǎn)是只能進(jìn)行整片寫。 E2PROM是可用電擦除和編程的只讀存儲(chǔ)器,能在線讀寫,斷電情況信息不丟失,能隨機(jī)改寫;其擦寫次數(shù)可達(dá)1萬次以上,數(shù)據(jù)可保存10年以上。可作為系統(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)用中。對于需要實(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ǔ)電荷的原理來保存信息的,由于電容會(huì)泄漏放電,所以,為保持電容中的電荷不丟失,必須對動(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)是什么? 【解答】 線選譯碼:連接簡單,無須專門的譯碼電路;缺點(diǎn)是地址不連續(xù),CPU尋址能力的利用率太低,會(huì)造成大量的地址空間浪費(fèi)。 全譯碼:將低位地址總線直接連至各芯片的地址線,余下的高位地址總線全部參加譯碼,譯碼輸出作為各芯片的片選信號(hào)??梢蕴峁θ看鎯?chǔ)空間的尋址能力。 部分譯碼:該方法只對部分高位地址總線進(jìn)行譯碼,以產(chǎn)生片選信號(hào),剩余高位線可空閑或直接用作其它存儲(chǔ)芯片的片選控制信號(hào)。 4.5 半導(dǎo)體存儲(chǔ)器在與微處理器連接時(shí)應(yīng)注意哪些問題? 【解答】半導(dǎo)體存儲(chǔ)器與CPU連接前,要確定內(nèi)存容量的大小并選擇存儲(chǔ)器芯片的容量大小,要考慮存儲(chǔ)器地址分配問題;在進(jìn)行存儲(chǔ)器地址分配時(shí),要將ROM和RAM分區(qū)域安排。 4.6 計(jì)算機(jī)在什么情況下需要擴(kuò)展內(nèi)存?擴(kuò)展內(nèi)存需要注意- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微型計(jì)算機(jī)原理與接口技術(shù) 微型計(jì)算機(jī) 原理 接口 技術(shù) 第三 習(xí)題 答案
鏈接地址:http://www.3dchina-expo.com/p-9769150.html