微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料_第1頁
微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料_第2頁
微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料_第3頁
微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料_第4頁
微機原理與單片機接口技術課后題答案詳解余發(fā)山楊凌霄主編資料_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微型計算機原理及應用習題集專業(yè)班級 學號 姓名 第1章概述一、填空題運算器和控制器集成在一塊芯片上,被稱作CPU??偩€按其功能可分數(shù)據(jù)總線、地址總線和控制總線三種不同類型的總線。迄今為止電子計算機所共同遵循的工作原理是 程序存儲和程序控制的工作原理。這種原理又稱為 馮諾依曼型原理。?寫出下列原碼機器數(shù)的真值;若分別作為反碼和補碼時,其表示的真值又分別是多少?(1)(01101110)二進制原碼(+1101110)二進制真值(+110)十進制真值(01101110)二進制反碼(+1101110)二進制真值(+110)十進制真值(01101110)二進制補碼=(+1101110)二進制真值=(+110)十進制真值⑵(10110101)二進制原碼=(—0110101)二進制真值=(—53)十進制真值(10110101)二進制反碼=(—1001010)二進制真值=(—74)十進制真值(10110101)二進制補碼=(—1001011)二進制真值=(—75)十進制真值?寫出下列二進制數(shù)的原碼、反碼和補碼(設字長為 8位)。(+1010110)二進制真值=(01010110)原碼=(01010110)反碼=(01010110)補碼(-1010110)二進制真值=(11010110)原碼=(10101001)反碼=(10101010)補碼6.:X:補=78H,則]-X:補=(88)H。7.已知X仁+0010100,丫仁+0100001,X2=-0010100,Y2=-0100001,試計算下列各式(設字長為 8位)。[Y1]補=00010100+00100001=00110101[—丫2]補=00010100 [Y1]補=00010100+00100001=00110101[—丫2]補=00010100 + 00100001=00110101[—丫2]補=11101100 + 00100001=00001101[丫2]補=11101100 + 11011111=11001011BCD數(shù)。[X1—丫2]補=[X1]補+[X2—丫2]補=[X2]補+[X2+丫2]補=[X2]補+8?將下列十六進制數(shù)分別轉(zhuǎn)換成二進制、八進制、十進制和BCD8=(9.58)16(5D.BA)16=(0101,1101.1011,1010)2=(135.564)8=(93.7265625)=(1001,0011.0111,0010,0110,0101,0110,0010,0101BCD8=(9.58)16(1001.0101,1)2=(9.34375)10=(11.26)9.寫出下列字符的ASCII碼。(1)'=(39H)ASCII碼9.寫出下列字符的ASCII碼。(1)'=(39H)ASCII碼(2)‘C'=(43H)ascii碼⑶'$'(24H)ASCII碼(4)空格’=(20H)ascii碼'b=(62H)ASCII碼(6)回車’=(0DH)ascii碼⑺換行'=(0AH)ascii碼(8)報警符'=(07H)asciiBCD碼、選擇題1.下列無符號數(shù)中最小的數(shù)是(A)。A.(01A5)hB.(1,1011,0101)bC.(2590)d D.(3764)o2.下列有符號數(shù)中最大的數(shù)是(D)。A.1002HB.1001001100101100BC.25700D.9614D3.在機器數(shù)(A)中,零的表示形式是唯一的。A.補碼B.原碼C.補碼和反碼 D.原碼和反碼4.8位二進制數(shù)補碼的數(shù)值表示范圍為(A)。A.—128?+127 B.—127?+127C.一129?+128 D.—128?+1285.若下列字符碼(ASCII)中有奇偶校驗位,但沒有數(shù)據(jù)錯誤,采用偶校驗的字符碼是(D)。C.11000001D.11001001B.帶符號數(shù)—71的補碼C.11000001D.11001001B.帶符號數(shù)—71的補碼D.帶符號數(shù)—57的原碼6.B9H可以看成(ABD)。A.無符號數(shù)185C.十進制數(shù)99的組合BCD碼三、簡答題1.簡述微處理器、微計算機及微計算機系統(tǒng)三個術語的內(nèi)涵。答:微處理器是微計算機系統(tǒng)的核心硬件部件,它本身具有運算能力和控制功能,對系統(tǒng)的性能起決定性的影響。微處理器一般也稱為 CPU;微計算機是由微處理器、存儲器、I/O接口電路及系統(tǒng)總線組成的裸機系統(tǒng)。 微計算機系統(tǒng)是在微計算機的基礎上配上相應的外部設備和各種軟件,形成一個完整的、獨立的信息處理系統(tǒng)。三者之間是有很大不同的,微處理器是微型計算機的組成部分,而微型計算機又是微型計算機系統(tǒng)的組成部分。2.什么叫總線?為什么各種微型計算機系統(tǒng)中普遍采用總線結(jié)構(gòu)?答:總線是模塊與模塊之間傳送信息的一組公用信號線??偩€標準的建立使得各種符合標準的模塊可以很方便地掛在總線上,使系統(tǒng)擴展和升級變得高效、簡單、易行。因此微型計算機系統(tǒng)中普遍采用總線結(jié)構(gòu)。3.微型計算機系統(tǒng)總線從功能上分為哪三類?它們各自的功能是什么?答:微型計算機系統(tǒng)總線從功能上分為地址總線、數(shù)據(jù)總線和控制總線三類。地址總線用于指出數(shù)據(jù)的來源或去向,單向;數(shù)據(jù)總線提供了模塊間數(shù)據(jù)傳輸?shù)穆窂?,雙向;控制總線用來傳送各種控制信號或狀態(tài)信息以便更好協(xié)調(diào)各功能部件的工作。第2章微處理器及其結(jié)構(gòu)一、 填空題1.8086/8088CPU執(zhí)行指令中所需操作數(shù)地址由 EU計算出位偏移量部分送BIU,由BIU最后形成一個_20_位的內(nèi)存單元物理地址。8086/8088CPU在總線周期的Ti時刻,用A19/S6?A16/S3輸出_20_位地址信息的最高_4_位,而在其他時鐘周期,則輸出 狀態(tài)信息。8086/8088CPU復位后,從0FFFF0H單元開始讀取指令字節(jié),一般這個單元在ROM區(qū)中,在其中設置一條 跳轉(zhuǎn)指令,使CPU對系統(tǒng)進行初始化。8086系統(tǒng)的存儲體系結(jié)構(gòu)中,1MB存儲體分_2_個庫,每個庫的容量都是512K字節(jié),其中和數(shù)據(jù)總線D15?D8相連的庫全部由奇地址單元組成,稱為高位字節(jié)庫,并用BHE作為此庫的選通信號。8086/8088系統(tǒng)中,可以有64K個段起始地址,任意相鄰的兩個段起始地址相距_J6_個存儲單元。?用段基值及偏移量來指明內(nèi)存單元地址的方式稱為 邏輯地址。通常8086/8088CPU中當EU執(zhí)行一條占用很多時鐘周期的指令時,或者在多處理器系統(tǒng)中在交換總線控制時會出現(xiàn) 空閑狀態(tài)。8086CPU使用16根地址線訪問I/O端口,最多可訪問64K個字節(jié)端口,使用20根地址線訪問存儲單元,最多可訪問 1M個字節(jié)單元。CPU取一條指令并執(zhí)行該指令的時間稱為 指令周期,它通常包含若干個總建周期,而后者又包含有若干個 時鐘周期。10.11.12.13.二、 單項選擇題.某微機最大可尋址的內(nèi)存空間為 16MB,其CPU的地址總線至少應有(E)條。A.26B.28C.20D.22E.24.8086/8088CPU的RESET引腳至少應維持(A)個時鐘周期的正脈沖寬度才能有效復位。A.4B.5 C.2D.33.當RESET信號進入高電平狀態(tài)時,將使 8086/8088CPU的(D)寄存器初始化為0FFFFH。A.SSB.DSC.ESD.CS4.8086/8088CPU與慢速存儲器或I/O接口之間進行數(shù)據(jù)傳輸,為了使傳送速度匹配,有時需要在(C)狀態(tài)之間插入若干等待周期 TW。A.T1和T2B.T2和T3C.T3和T4 D.隨機8086/8088CPU中標志寄存器的主要作用是(D)。A.檢查當前指令的錯誤 B.糾正當前指令執(zhí)行的結(jié)果與錯誤C?決定是否停機 D.產(chǎn)生影響或控制某些后續(xù)指令所需的標志8086最小模式下的存儲器讀周期中地址鎖存發(fā)生在總線周期的 (A)時刻。A.T1B.T2C.T3D.T4指令指針I(yè)P的作用是(A)。A.保存將要執(zhí)行的下一條指令的地址 B.保存CPU要訪問的內(nèi)存單元地址C.保存運算器運算結(jié)果內(nèi)容 D.保存正在執(zhí)行的一條指令8.8086CPU有兩種工作模式,最小模式的特點是(A)oA.CPU提供全部控制信號 B.由編程進行模式設定C.不需要8282收發(fā)器 D.需要總線控制器8288三、簡答題1.8086/8088CPU分為哪兩個部分?如何協(xié)調(diào)工作?答:EU是執(zhí)行部件,主要的功能是執(zhí)行指令和形成有效地址。 BIU是總線接口部件,與片外存儲器及 I/O接口電路傳輸數(shù)據(jù),主要功能是形成實際地址、預取指令和存取操作數(shù)。EU經(jīng)過BIU進行片外操作數(shù)的訪問,BIU為EU提供將要執(zhí)行的指令。EU與BIU可分別獨立工作,當EU不需BIU提供服務時,BIU可進行填充指令隊列的操作。.8086/8088CPU的地址總線有多少位?其尋址范圍是多少?答:8086/8088CPU的地址總線共20位,最大可尋址1MB空間。.8086/8088CPU使用的存儲器為什么要分段?怎么分段?答:8086/8088為16位CPU,其內(nèi)部的ALU、相關的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而對存儲器地址的處理也只能是 16位操作,即8086/8088的直接尋址能力在64KB范圍內(nèi)。而實際上8086/8088有20條地址線,它的最大尋址空間為1MB。這就產(chǎn)生了一個矛盾,即如何用16位的地址寄存器去表示一個20位的存儲器物理地址?實際使用的解決辦法是:將1MB大小的存儲空間分為若干 段”每段不超過64KB。這樣,一個20位的物理地址就可以用 “1位段基址:16位偏移量”的形式(稱為邏輯地址)來表示了,其中段地址存放在 8086/8088的段寄存器中。4.8086/8088CPU中有幾個通用寄存器?有幾個變址寄存器?有幾個指針寄存器?通常哪幾個寄存器亦可作為地址寄存器使用?答:8086/8088CPU中共有:8個16位的通用寄存器AX、BX、CX、DX、BP、SP、SI、DI;2個變址寄存器SI、DI;2個指針寄存器BP、SP;其中BX、BP、SI、DI亦可作地址寄存器。Intel8086與8088有何區(qū)別?答:8086與8088的區(qū)別主要表現(xiàn)在以下幾個方面:第一、8086的指令隊列可以容納6個字節(jié),每個總線周期在存儲器中取出2個字節(jié)指令代碼填入隊列。而8088只能容納4個字節(jié),且每個總線周期只能取出1個字節(jié)指令代碼。第二、8086外部數(shù)據(jù)總線寬度為16位,8088外部數(shù)據(jù)總線寬度只有8位。注意:8086和8088外部數(shù)據(jù)總線的寬度不同將導致擴展主存儲器及輸入 /輸出接口時系統(tǒng)地址線和數(shù)據(jù)線連接方式的不同。第三、其他不同的引腳定義:(1)AD15?AD0,在8086中為地址/數(shù)據(jù)復用,而在8088中AD15~AD8改為A15~A8只作地址線用;(2)34、28號引腳定義不同。8086/8088CPU工作在最小模式時:當CPU訪問存儲器時,要利用哪些信號?當CPU訪問外設接口時,要利用哪些信號?答:8086/8088CPU工作在最小模式時,若訪問存儲器,需用到以下信號:M/1O、ALE、DT/R、DEN、READY、BHE、WR、RD、AD0?AD15、A19/S6?A16/S3。若訪問外設,需用到以下信號: M/iO、ALE、DT/R、DEN、READY、WR、RD、AD0?AD15。.試指出下列運算后的各個狀態(tài)標志,并說明進位標志和溢出標志的區(qū)別:1278H+3469H答:CF=0AF=1ZF=0SF=0OF=0PF=154E3H—27A0H答:CF=0AF=0ZF=0SF=0OF=0PF=03881H+3597H答:CF=0AF=0ZF=0SF=0OF=0PF=101E3H—01E3H答:CF=0AF=0ZF=1SF=0OF=0PF=1其中,進位標志CF用于判別無符號數(shù)運算是否超出數(shù)的表示范圍,而溢出標志OF用于判別帶符號數(shù)運算是否超出數(shù)的表示范圍。奇偶標志PF只能判斷結(jié)果低8位中“1的個數(shù)為奇數(shù)還是偶數(shù)。?什么是邏輯地址?什么是物理地址?它們之間有什么聯(lián)系?各用在何處?答:邏輯地址由兩個16位的部分即段基址和偏移量組成,一般在程序中出現(xiàn)的地址都表示為邏輯地址形式;物理地址是一個20位的地址,它是唯一能代表存儲空間每個字節(jié)單元的地址,一般只出現(xiàn)在地址總線上。由于8086/8088CPU中的寄存器只有16位長,所以程序不能直接存放 20位的物理地址,而必須借助邏輯地址,即用兩個 16位的寄存器來表示物理地址。他們之間的關系是:物理地址=段基址*16+偏移量;另外,一個物理地址可對應多個邏輯地址。?設現(xiàn)行數(shù)據(jù)段位于存儲器OBOOOOH?OBFFFFH單元,DS段寄存器內(nèi)容為多少?答:DS段寄存器內(nèi)容為OBOOOH。?給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是 20C0H,(DS)=OCOEOH,求出該內(nèi)存單元的物理地址。答:物理地址:0C2EC0H。?8086/8088為什么采用地址/數(shù)據(jù)引線復用技術?答:考慮到芯片成本和體積,8086/8088采用40條引線的封裝結(jié)構(gòu)。40條引線引出8086/8088的所有信號是不夠用的,采用地址 /數(shù)據(jù)線復用引線方法可以解決這一矛盾,從邏輯角度,地址與數(shù)據(jù)信號不會同時出現(xiàn),二者可以分時復用同一組引線。?怎樣確定8086的最大或最小工作模式?答:弓|線MNMX的邏輯狀態(tài)決定8086的工作模式,MNMX引線接高電平,8086被設定為最小模式, MNMX弓I線接低電平,8086被設定為最大模式。?8086基本總線周期是如何組成的?答:基本總線周期由4個時鐘(CLK)周期組成,按時間順序定義為T1、T2、T3、T4。?在基于8086的微計算機系統(tǒng)中,存儲器是如何組織的?存儲器是如何與處理器總線連接的? BHE信號起什么作用?答:8086為16位微處理器,可訪問1M字節(jié)的存儲器空間;1M字節(jié)的存儲器分為兩個512K字節(jié)的存儲體,分別命名為偶存儲體和奇存儲體;偶體的數(shù)據(jù)線連接D7~D0,體選”信號接地址線A0;奇體的數(shù)據(jù)線連接D15~D8,體選”信號接BHE信號;A0信號有效時允許訪問偶體中的低字節(jié)存儲單元, BHE信號有效時允許訪問奇體中的高字節(jié)存儲單元,實現(xiàn) 8086的低字節(jié)訪問、高字節(jié)訪問及字訪問。15.有一個由20個字組成的數(shù)據(jù)區(qū),其起始地址為 610AH:1CE7H。試寫出該數(shù)據(jù)區(qū)首末單元的實際地址 PA。首單元地址:610A0H+1CE7H=62D87H末單元地址:62D87H+27H=62DAEH16.有兩個16位的字31DAH、5E7FH,它們在8086系統(tǒng)存儲器中的地址為00130H和00135H,試畫出它們的存儲器示意圖。地址 內(nèi)容17.試說明8086CPU的控制引腳ALE的作用。答:8086的低位地址線與數(shù)據(jù)線復用,為保證地址線維持足夠的時間,需使用ALE信號將低位地址線通過鎖存器保存,以形成系統(tǒng)地址總線。第3章8086/8088CPU指令系統(tǒng)」、判斷題TOC\o"1-5"\h\zMOVAX,:BP]的源操作數(shù)物理地址為 16X(DS)+(BP)。 (X)OUTDX,AL指令的輸出是16位操作數(shù)。 (X)?不能用立即數(shù)給段寄存器賦值。 (“.所有傳送指令都不影響 PSW寄存器的標志位。 (X)堆棧指令的操作數(shù)均為字。 (v)6.段內(nèi)轉(zhuǎn)移指令執(zhí)行結(jié)果要改變 IP,CS的值。 (X)二、單項選擇題.寄存器間接尋址方式中,操作數(shù)在(C)中。A.通用寄存器B.I/O端口C.存儲單元 D.段寄存器.(A)尋址方式的跨段前綴不可省略。A.DS::BP: B.DS::SI: C.DS::DI: D.SS::BP:假設(SS)=2000H,(SP)=0012H,(AX)=1234H,執(zhí)行PUSHAX后,(SP)=(C)。A.0014HB.0011HC.0010HD.000FHC)。Shortlabel后,下列各數(shù)(D)1100H用BP作基址變址尋址時,操作數(shù)所在的段是當前(A.C)。Shortlabel后,下列各數(shù)(D)1100H5.已知(IP)=1000H,CF=0,則執(zhí)行指令JNC中哪一個是可能的 IP值?(B)(A)0FFFFH(B)0FFEH(C)10FEH執(zhí)行下列指令后,(AX)=(A)。MOVAX,1234HMOVCL,4ROLAX,CLDECAXMOVCX,4MULCXHLTA.8D00HB.9260HC.8CA0HD.0123H7.設(AL)=-68,(BL)=86,執(zhí)行SUBAL,BL指令后,正確的結(jié)果是(C)。A.CF=1B.SF=1C.OF=1D.ZF=18.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEAAX,:SI]執(zhí)行后(AX)=(C)。A.0002HB.0005HC.0004HD.C302H9.條件轉(zhuǎn)移指令JNE的條件是(C)。A.CF=0B.CF=1C.ZF=0D.ZF=110.在8086中,(BX)=0282H,且題中指令已在指令隊列中,則執(zhí)行INCBYTEPTR(BX)指令需要的總線周期為( C)。A.0B.1 C.2D.3三、 多項選擇題.下列指令中源操作數(shù)使用寄存器尋址方式的有( BF)。A.MOV BX, BUF :SI]B.ADD :SI+50: , BX C. SUB AX,2D.CMP AX, DISP :DI: E.MUL VAR :BX: F. PUSH CX.將累加器AX的內(nèi)容清零的正確指令是(BCD)。A.CMP AX, AX B.SUBAX,AXC.AND AX, 0 D.XORAX,AX.正確將字變量WORDVARR偏移地址送寄存器AX的指令是(CD)。A.MOVAX,WORDVARR B.LESAX,WORDVARRLEAAX,WORDVARR D.MOVAX,OFFSETWORDVARR.調(diào)用CALL指令可有(ABDE)。A.段內(nèi)直接B.段內(nèi)間接C.短距離(SHORT)段間直接E.段間間接5.8086指令的操作數(shù)可能有(ABC)。A.0B.1C.2D.3四、 填空題.與指令MOVBX,OFFSETBUF功能相同的指令是LEABX:BUF。.假設(BX)=0449H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=7230H則執(zhí)行XCHGBX,:BP+SI]指令后,(BX)=7230H。?執(zhí)行下列指令序列后,完成的功能是將( DX,AX)的值除以16。MOVCX,4NEXT:SHRDX,1RCRAX,1LOOPNEXT已知(AL)=01011101B,執(zhí)行指令NEGAL后,再執(zhí)行CBW后,(AX)= 0FFA3H。在數(shù)據(jù)傳送類指令中,只有SAHF和POPF兩條指令會影響標志位的值,其中指令POPF是唯一可以改變TF標志的指令。設有100個字節(jié)數(shù)據(jù)(補碼),存放在數(shù)據(jù)段中EA=2000H的存儲單元中。以下程序應該從該數(shù)據(jù)區(qū)中找出最小的一個數(shù)據(jù), 并存入EA=2100H單元中,請將F面程序補充完整。MIN: MIN: MOVMOVMOVLOOP1:INCCMPJLEMOVLOOP2:DECJNZMOVBX, 2000HAL,:BX:CX, 99BXAL,:BX:LOOP2AL,:BX:CXLOOP1「2100H「,AL7.MOVAX,ES:「BX:「SI]中,源操作數(shù)的物理地址計算式是:(ES)X16+(BX)+(SI)。五、綜合題1.請指出以下各指令的源、目的操作數(shù)所使用的尋址方式。(1)MOVSI,2100H(2)SBBDISP[BX],7(3)AND[DI],AX(4)ORAX,[609EH](5)MOV[BX+DI+30H],CX(6)PUSHES:[BP](7)CALLDISP[DI]答:(1)源操作數(shù):立即數(shù)尋址;目的操作數(shù):寄存器尋址源操作數(shù):立即數(shù)尋址;目的操作數(shù): (帶位移量的)基址尋址源操作數(shù):寄存器尋址;目的操作數(shù):變址尋址(4)源操作數(shù):直接尋址; 目的操作數(shù):寄存器尋址源操作數(shù):寄存器尋址;目的操作數(shù): (帶位移量的)基址變址尋址源操作數(shù):帶段超越的基址尋址;目的操作數(shù):隱含尋址(7)只有一個操作數(shù),為(帶位移量的)變址尋址2.請指出下列各條指令的錯誤,并改正。(1)MOV[100],23H(2)ADDAX,[BX+BP+6](3)PUSHDL(4)INAX,[3FH](5)OUT3FFH,AL(6)POP[AX](7)IMUL4CH(8)SHLBX,(9)INT300(10)XCHGDX,0FFFH(11)MOVAH,BX(12)MOV[BX],ES:AX(13)MOVAX,OFFSET[SI](14)MOVCS,AX(15)MOVDS,ES(16)MOVDS,1000H答:(1)不允許直接向段寄存器送立即數(shù),可改為:MOV AX,1000HMOV DS,AX該指令在語法上是對的,即可以把一個立即數(shù)送入一個存儲單元;但是如果考慮實際編譯,則第一操作數(shù)前應加上BYTEPTR或WORDPTR說明,否

則匯編程序會因不能確定操作數(shù)長度而指示出錯??筛臑椋?MOVBYTEPTR[100],23H不能同時使用兩個基址寄存器 BX、BP進行間接尋址,可改為:ADDAX,[BX+DI+6]堆棧操作應以字為單位進行,而 DL是一個字節(jié)。可改為:PUSHDX在輸入/輸出指令中,8位端口地址應直接寫在操作數(shù)處??筛臑椋篒NAX,3FH端口地址3FFH已超出8位二進制表示范圍,16位端口地址應存于DX。可改為:MOVDX,3FFH OUTDX,ALAX不能用于間接尋址,間接尋址只能用 BX、BP、SI、DI四個寄存器之一??筛臑椋?POP[BX]立即數(shù)不能做乘法指令的操作數(shù),可改為:MOVBL,4CHIMULBL當邏輯移位的次數(shù)大于 1時,應該用CL指示次數(shù)??筛臑椋篗OV CL,5SHL BX,CL操作數(shù)300-255,已超出有效的中斷類型碼范圍。(11)XCHG指令不允許立即數(shù)做它的操作數(shù)。可改為:MOV CX,OFFFHXCHG DX,CX(12)源、目的字長不一致(13)在8086尋址方式中, AX不能作為基址寄存器使用 ,而且源、目的不能同時為存貯器尋址方式OFFSET只用于簡單變量,應去掉CS不能作為目的寄存器段寄存器之間不能直接傳送數(shù)據(jù)3.設若標志寄存器原值為0A11H,(SP)=0060H,(AL)=4。下列幾條指令執(zhí)行后,標志寄存器、AX、SP的值分別是多少?PUSHFLAHFXCHGAH,ALPUSHAXSAHFPOPF答:指令執(zhí)行后標志寄存器的值為 0411H,AX=0411H,SP=005EH。假如在程序的括號中分別填入指令 :LOOPL20LOOPNEL20LOOPEL20試說明在三種情況下,當程序執(zhí)行完后,AX、BX、CX、DX四個寄存器的內(nèi)容分別是什么?BEGINMOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()答案: (1)(AX)=5(BX)=16(CX)=0(DX)=0(2)(AX)=3(BX)=7(CX)=2(DX)=0(3)(AX)=2 (BX)=4(CX)=3(DX)=1在已學的指令中,可實現(xiàn)累加器清 0的單條指令有哪些?比較它們的功答:(1)MOVAX,0;僅將累加器清0,不會影響任何標志位(2)SUBAX,AX;累加器清0的同時影響所有狀態(tài)標志,具體地有:ZF、PF置1,CF、AF、SF、OF均清0(3)ANDAX,0;將累加器清0,ZF、PF置1,CF、OF、SF清0(4)XORAX,AX;將累加器清0,ZF、PF置1,CF、OF、SF清06.已知(DS)=2000H,有關的內(nèi)存單元值為: (21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符號COUNT的偏移地址為1200H。執(zhí)行下列指令后,寄存器AX、BX、SI的值分別是多少?MOV BX,OFFSETCOUNTMOVSI,[BX]MOV AX,COUNT[SI][BX]答:執(zhí)行結(jié)果為( BX)=1200H,(SI)=1000H,(AX)=3040H。7.設若內(nèi)存單元DATA在數(shù)據(jù)段中偏移量為24C0H處,24C0H~24C3H單元中依次存放著55H、66H、77H、88H。下列幾條指令執(zhí)行后,寄存器AX、BX、CL、SI、DS的值分別是多少?MOVAX,DATALEASI,DATAMOV CL,[SI]LDS BX,DATA答:執(zhí)行結(jié)果為(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877H。&若(AX)=26D3H,(CX)=7908H,CF=1,執(zhí)行下列指令后,寄存器AX、CX的值分別是多少?CF=?OF=?SALCH,1RCR AX,CLROL AL,1答:執(zhí)行結(jié)果為(AX)=0A64CH,(CX)=0F208H,CF=OF=0。;以X;以X為首址的字單元中的數(shù)據(jù)依次為1234H、;以Y為首址的字單元中的數(shù)據(jù)依次為8765H、LEASI,XLEADI,YMOVDX,[SI+2]MOVAX,XADDAX,XADCDX,[SI+2]CMPDX,[DI+2]JLL2CMPAX,YJLL1JMPEXITL1:MOVAX,1JMPEXITL2:MOVAX,2EXIT5678H4321H答:執(zhí)行結(jié)果為(AX)=2,(DX)=OACFOH。y,試編程按以下要求給 y10.設VAR字單元的值為x,y,試編程按以下要求給 y廠2 x>30y=[ 0 30>x>1J-2 x<1答:一種可能的程序段實現(xiàn)如下:MOVCMPJGAX,VARAX,30PLUS2;AX,1MIN2 ;F1,0 ;;AX-xx>30,則轉(zhuǎn)PLUS2x<1,則轉(zhuǎn)MIN230>x>1y=0CMPJLMOVJMPGOPLUS2:MOVF1,2 ;y=2JMPGOMIN2:MOVF1,-2;y=-2或00FEHGO:;后續(xù)處理簡析:本例中并未說明 VAR字節(jié)單元是帶符號數(shù)還是無符號數(shù),讀者在使用判斷轉(zhuǎn)移指令時可任意選用。若當作帶符號數(shù),應使用 JG、JL、JGE、JLE等指令,如參考程序;若當作無符號數(shù),則應使用 JA、JB、JAE、JBE等指令。第4章匯編語言程序設計一、 填空題段定義偽指令語句用 SEGMENT語句表示開始,以ENDS語句表示結(jié)束。.ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H))語句執(zhí)行后共占1200字節(jié)存儲單元。.匯編語句中,一個過程有 NEAR和FAR兩種屬性。NEAR屬性表示主程序和子程序在同一個代碼段中,FAR屬性表示主程序和子程序不在同一個代碼段中。DOS系統(tǒng)功能號應放在AH寄存器中。子程序又稱過程,它可以由PROC語句定義,由ENDP語句結(jié)束,屬性可以是NEAR或FAR。假設VAR為數(shù)據(jù)段中已定義的變量,則指令MOVBX,OFFSETVAR中源操作數(shù)的尋址方式是立即數(shù)尋址 。二、 選擇題.EXE文件產(chǎn)生在(D)之后。A.匯編B.編輯C.用軟件轉(zhuǎn)換 D.連接.變量定義的偽指令助記符有( ABCEF)。A.DBB.DWC.DDD.DFE.DQF.DT3.主程序與子程序之間傳遞參數(shù)可通過( ABC)進行。A.堆棧B.存儲器單元 C.通用寄存器 D.指令隊列 E.其他?計算機系統(tǒng)軟件中的匯編程序是一種( C)。A.匯編語言程序 B.編輯程序C.翻譯程序 D.將高級語言轉(zhuǎn)換成匯編程序的程序5.若主程序段中數(shù)據(jù)段名為DATA,對數(shù)據(jù)段的初始化操作應為(B)。A.MOVAX,DATAB.MOVAX,DATAMOVES,AXMOVDS,AXC.PUSHDSD.MOVDS,DATA6.8086宏匯編源程序中,若BUFF是字變量名,則執(zhí)行指令MOVBX,BUFF后,BX中的值為BUFF單元的(A)oA.字數(shù)據(jù)值 B.變量類型值 C.段基址D.段內(nèi)偏移量三、綜合題1?下列標號為什么是非法的 ?(1) GET.DATA(2) 1_NUM(3) TEST-DATA(4) RETNEWITEM答案:(1)因為‘只允許是標號的第一個字符第一個字符不能為數(shù)字不允許出現(xiàn)-'不能是保留字,如助記符⑸不能有空格已知數(shù)據(jù)和符號定義A1DB?A2DB8K1EQU100判斷下列指令的正誤,并說明錯誤指令的原因。(1)MOVK1,AX(2)MOVA2,AH(3)CMPA1,A2(4)MOVBX,K1MOV[BX],DX(5)K1EQU1200答:(1)錯誤。K1是符號,在此處相當于立即數(shù)100,故不能做目的操作數(shù)。正確。錯誤。A1、A2都是字節(jié)變量,相當于兩個存儲器單元,故不能同時出現(xiàn)在一條指令中直接進行比較。正確。錯誤。用EQU定義的符號不能重新賦值,除非已用 PURGE解除了原值。若數(shù)據(jù)段中有定義NUM1EQU23HNUM2DW0則指令MOVNUM2,NUM1的源、目操作數(shù)的尋址方式以及指令執(zhí)行后NUM2+1單元的內(nèi)容分別是什么?答:指令MOVNUM2,NUM1的源操作數(shù)使用立即數(shù)尋址,目的操作數(shù)使用直接尋址。指令執(zhí)行后NUM2+1單元的內(nèi)容是0。4.已知某數(shù)據(jù)段從物理地址03000H處開始,定義如下:DSEGSEGMENTORG2000HA1DD2DUP(7,1,?)A2DB10DUP(0,4,3DUP(2),5)CNTEQU20H

A3DW100DUPA3DW100DUP(?)DSEGENDS請分別用分析運算符 SEG、OFFSET、LENGTH、SIZE、TYPE求出A1、A2、A3的段基址、偏移量、類型及它們的LENGTH、SIZE。答:(SEGA1)=0300H, (OFFSETA1)=2000H, (TYPEA1)=4,(LENGTHA1)=2, (SIZEA1)=2X3X4=24;(SEGA2)=0300H, (OFFSETA2)=2018H, (TYPEA2)=1,(LENGTHA2)=10,(SIZEA2)=10X6X1=60;(SEGA3)=0300H, (OFFSETA3)=2054H, (TYPEA3)=2,(LENGTHA3)=100, (SIZEA3)=100X2=2005.下面兩個數(shù)據(jù)段中偏移地址為10H和11H的兩個存儲單元中的數(shù)據(jù)一樣嗎?DTSEGSEGMENTDTSEGSEGMENTORG10HORG10HDATA1DB72HDATA1DW7204HDB04HDTSEGENDSDTSEGENDS為什么?答案:不一樣。分別是72H,04H和04H,72H。存儲字時低8位存在低字節(jié),高8位存在高字節(jié)。6?已知符號定義語句如下:ALPHAEQU100BETAEQU25GAMMAEQU2分別求下列各表達式的值。ALPHA*4GTBETAALPHAMODGAMMA+BETA(BETA/3)LE5ALPHAANDBETAGAMMAXOR(BETAEQ25)答:(1)ALPHA*4GTBETA=100*4GT25=0FFFFHALPHAMODGAMMA+BETA=100MOD2+25=25(BETA/3)LE5=(25/3)LE5=0ALPHAANDBETA=100AND25=64H&19H=0GAMMAXOR(BETAEQ25)=2?(25EQ25) =0FFFDH

VARIVAR27.已知數(shù)據(jù)段定義如下:VARIVAR2DSEGSEGMENTORG6VAR1DB2,18VAR2DW569AHCONTEQU$—VAR2DW569AHCONTEQU$—AR2DB'AB'DSEGENDS用示意圖說明該數(shù)據(jù)段的分配情況。答:有關存儲單元的內(nèi)容如下圖所示。&判斷以下說法是否正確,如有錯,請說明原因并改正。(1) 偽指令在匯編過程中不會產(chǎn)生二進制代碼。(2) 宏和過程的相同之處是都可用于簡化源程序書寫、精簡目標代碼。(3) 在計算機中,高級語言通常需要轉(zhuǎn)換為匯編語言后才能執(zhí)行。(4) 匯編語言程序上機一般包括編輯、匯編、鏈接和調(diào)試幾個步驟。答:(1)正確。 (2)錯誤。宏不能精簡目標代碼。(3) 錯誤。高級語言程序經(jīng)編譯或解釋后直接轉(zhuǎn)換為目標代碼。(4) 正確。9.執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么?TABLEDW10,20,30,40,50ENTRYDW3MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]答:(AX)=1E00H10.指出下列程序中的錯誤:STAKSGSEGMENTDB100DUP⑺STA_SGENDSDTSEGSEGMENT

DATA1DB?DTSEGENDCDSEGSEGMENTMAINPROCFARSTART:MOVDS,DATSEGMOVAL,34HADDAL,4FHMOVDATA,ALSTARTENDPCDSEGENDSEND答案:改正后:STAKSGSEGMENTDB100DUP⑺STAKSGENDSDTSEGSEGMENTDATADB?DTSEGENDSCDSEGSEGMENTMAINPROCFARASSUME CS:CDSEG,DS:DTSEG,SS:STAKSGSTART:MOV AX,DTSEGMOVDS,AXMOVAL,34HADDAL,4FHMOVDATA1,ALMOVAH,4CHINT21HMAIN ENDPCDSEG ENDSENDSTART11?請寫出上述兩條指令執(zhí)行后, BX寄存器中的內(nèi)容。DATASEGMENTTABLE_ADDR DW1234HDATAENDSMOVBX,TABLE_ADDRLEABX,TABLE_ADDR答案:MOVBX,TABLE_ADDR;執(zhí)行后(BX)=1234HLEABX,TABLE_ADDR;執(zhí)行后(BX)=OFFSETTABLE_ADDR

DATADATA12.讀下面程序,在其中的空處添上適當內(nèi)容。該程序完成了什么功能?程序運行后,變量RS的值是多少?DATADATASTACKSEGMENTPARASTACKSTACKDB256DUPSTACKSEGMENTPARASTACKSTACKDB256DUP(?)ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARLP:PUSHMOVPUSHMOVMOVLEAMOVMOVMOVTESTJEDSAX,AXAX,DS,BX,STARTPROCFARLP:PUSHMOVPUSHMOVMOVLEAMOVMOVMOVTESTJEDSAX,AXAX,DS,BX,CH,CL,AL,DATAAXBUF[BX]AL,CONT80HINCRSINCRSCONT:INCBXLOOPCONT:INCBXLOOPLPBUFDB-13,24,5,-62DB77,20,-7,145,0CNTDB$-BUFRSDB0SEGMENTENDSRETSTARTENDPCODEENDSENDSTARTCNT,字節(jié)變量RS的最后結(jié)果是04HSTARTENDPCODEENDSENDSTARTCNT,字節(jié)變量RS的最后結(jié)果是04H。該程序?qū)崿F(xiàn)的功BUF為首址的帶符號字節(jié)數(shù)據(jù)表中負數(shù)的個數(shù),表中所有數(shù)據(jù)的個數(shù),即表的長度。需要注意的是:十進制數(shù)據(jù)制帶符號字節(jié)數(shù)據(jù)形式存放時相當于 -111”。答:程序空處可填能是:統(tǒng)計數(shù)據(jù)段中以CNT為“145在以二進13?試編寫一個匯編語言程序段,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。

答案:movah,1int21hcmp答案:movah,1int21hcmpal,'jbstopcmpal,'jastopsubal,20hmovdl,almovah,2int21hjmpabcretstop:abc:a'z14.編寫程序,比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH,若不同則顯示“NOMATCH。答案:datareasegmentstring1db‘a(chǎn)sfioa'string2db‘xcviyoaf'mess1db'MATCH,'$'mess2db'NOMACH,'$'datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datareastart:pushstart:pushdssubax,axpushax;返回DOSmovax,datareamovds,axmoves,ax ;賦初值begin:movcx,string2-string1begin:movbx,mess1-string2cmpbx,cx ;比較兩字符串的長度jnz dispnoleadx,addr;若長度相同leasi,string1

leasi,string1leadi,string2;地址指針賦初值repecmpsb;比較jnedispnomovah,9;相同,顯示MATCHleadx,mess1int21hretdispno: movah,9;不同,顯示NOMATCHleadx,mess2int21hretmain endpprognamendsendstart15?編寫一個完整的源程序,將數(shù)據(jù)35、-27、-13、6、-47、52、9、-3中的正數(shù)放入以BUFFER為首址的數(shù)據(jù)緩沖區(qū)中。答:一種可能的程序如下實現(xiàn):DATA SEGMENTBLOCKDBCOUNTEQUBUFFERDBDATAENDSSTACKSEGMENTDWSTACKENDSCODESEGMENT35,-27,—13,6,—47,52,9,-BLOCKDBCOUNTEQUBUFFERDBDATAENDSSTACKSEGMENTDWSTACKENDSCODESEGMENTPARASTACK'STACK40DUP(?)COUNTDUPPARASTACK'STACK40DUP(?)ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVES,AX;需用STOS串操作指令MOVCX,COUNTLEASI,BLOCK;源數(shù)據(jù)區(qū)指針LEADI,BUFFER;正數(shù)存放區(qū)指針CLD;自動增量AGAIN:LODSB;取源數(shù)據(jù),并修改 SITESTAL,80H;取符號位,不影響 ALJSGO;符號位=1,是負數(shù),不存STOSB;存正數(shù)并修改DIGO:LOOPAGAINMOVAH,4CH;退出循環(huán),返回DOSINT21HCODEENDSENDBEGIN16?從內(nèi)存單元BUF開始的緩沖區(qū)中有 7個8位無符號數(shù),依次為13H、

0D8H、92H、2AH、66H、OEOH、3FH。編程找出它們的中間值并放入 RES單元,且將結(jié)果以 “(RES)=?的格式顯示在屏幕上。答:一種可能的程序如下實現(xiàn):DATASEGMENTBUFDB13H,0D8H,92H,2AH,66H,0E0H,3FHRESDB? ;中間數(shù)的存放單元STRDB'(RES)='STR1DB?,?, ‘$' ;結(jié)果字符串DATAENDSSSEGSEGMENTPARASTACKSSEGDB100DUP(?)SSEGENDSCODESEGMENTASSUMECS:CODE,SS:SSEG,DS:DATA,ES:DATAMAINPROCFAR ;主程序PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX ;有STOS指令,需用ESMOVCX,6 ;外循環(huán)次數(shù),比6次AGN:MOVSI,OFFSETBUFMOVDI,SIINCDI ;SI、DI指向相鄰2數(shù)MOVDX,6 ;內(nèi)循環(huán)次數(shù),比6次AGN1:MOVAL,[SI]CMPAL,[DI] ;兩個無符號數(shù)相比較JBUNCH ;小于則轉(zhuǎn),不互換EXCH:XCHGAL,[DI] ;前1單元較大,則互換MOV[SI],AL ;大數(shù)放在后面UNCH:INCSI ;修改指針,指向下一個數(shù)INCDIDECDXJNZAGN1 ;未處理完,繼續(xù)內(nèi)循環(huán)LOOPAGN ;外循環(huán)DONE:MOVAL,[SI-3] ;排序完成,取中間數(shù)MOVRES,ALANDAL,0F0H ;分離高半字節(jié)MOVCL,4SHRAL,CLCALLBATR ;調(diào)子程序,將AL值轉(zhuǎn)換為ASCII碼LEADI,STR1 ;DI指向結(jié)果單元CLDSTOSB;存放轉(zhuǎn)換結(jié)果MOVAL,RESANDAL,0FH ;分離并轉(zhuǎn)換低半字節(jié)CALLBATRSTOSBLEADX,STR ;顯示整個字符串MOVAH,09HINT21HRETMAINENDP;主程序MAIN結(jié)束;子程序BATR,實現(xiàn)16進制數(shù)到ASCII碼的轉(zhuǎn)換BATRPROCNEARCMPAL,10;入口參數(shù)為ALJBNUM;是數(shù)字,則轉(zhuǎn)NUMADDAL,‘A'10-'0';字母NUM:ADDAL,'0'RETBATRENDP;子程序結(jié)束CODEENDSENDMAIN簡析:本例的基本思路是:先把7個無符號數(shù)按大小排序,排序完成之后取位于中間的一個數(shù)即為中間值。 然后將該16進制數(shù)轉(zhuǎn)換為兩個對應的 ASCII碼,再與要求的格式字符一起輸出送顯即可。數(shù)據(jù)排序可以是從大到小、或從小到大排列,本參考程序完成從小到大排序,由一個雙重循環(huán)結(jié)構(gòu)實現(xiàn)。內(nèi)循環(huán)完成一個數(shù)與其它數(shù)之間的 比較,并使每次比較所得的小數(shù)置于低地址單元。 外循環(huán)實現(xiàn)所有數(shù)之間的兩兩相較。 共7個數(shù)據(jù),故內(nèi)、外循環(huán)中的比較次數(shù)均為 6次。編程時需注意:無符號數(shù)比較大小應使用 JA、JB、JAE、JBE指令,本例完成從小到大的排列,故用JB控制轉(zhuǎn)移到UNCH;若要從大到小排列, 則用JA代替JB即可。對兩個循環(huán)體進行初始化時,需仔細考慮指針和循環(huán)控制寄存器的初值。在數(shù)據(jù)段的定義中,分別定義STR、STR1兩個變量名字,是為了便于在 STR1處存放轉(zhuǎn)換結(jié)果;顯示時使DX直接指向STR,以STR1末尾的“$為結(jié)束符。中間值找出之后,應把高、低半字節(jié)相分離,并分別轉(zhuǎn)換為各所對應的 ASCII碼。17.設某測試系統(tǒng)中,1號端口為測試口,所得數(shù)據(jù)是 0~9之間的十進制整數(shù);2號端口為顯示口,對應于數(shù)字 0~9的LED七段共陰顯示碼依次為: 3FH、06H、5BH、4FH、66H、6DH、3DH、07H、7FH、6FH。編寫一段查表送顯的程序,要求:先從測試口讀入一個數(shù)據(jù),再查表將相應的顯示碼從顯示口送出,如此反復進行直至讀入數(shù)據(jù) “OFFH為止。答:一種可能的程序如下實現(xiàn):DATASEGMENTTABDB 3FH,06H,5BH,4FH,66HDB 6DH,3DH,07H,7FH,6FH;0~9的七段碼DATAENDSSTACKSEGMENTPARASTACKSTACKDW 50DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACK,DS:DATASTART: MOVAX,DATA

MOVLEDS,AXBX,TAB;BX指向表首址NEXT:INAL,1;從測試口輸入CMPAL,OFFHJESTOP;是OFFH,結(jié)束XLATTAB;不是OFFH,查表轉(zhuǎn)換OUT2,AL;向顯示口輸岀七段碼JMPNEXT;繼續(xù)測試STOP:MOVAH,4CHINT21HCODEENDSENDSTART第5章存儲器系統(tǒng)」、選擇題.下列(B)不是半導體存儲器芯片的性能指標。存儲容量 B.存儲結(jié)構(gòu)C.集成度D.最大存儲時間?高速緩存由(B)構(gòu)成。A.SRAMB.DRAMC.EPROMD.硬磁盤.由2KX1bit的芯片組成容量為4KX8bit的存儲器需要(D)個存儲芯片。A.2B.8C.32D.164.安排2764芯片內(nèi)第一個單元的地址是 1000H,則該芯片的最末單元的地址是(D)。A.1FFFHB.17FFHC.27FFHD.2FFFH.一片容量為8KB的存儲芯片,若用其組成1MB內(nèi)存,需(C)片。A.120B.124C.128D.132?外存儲器包括 (ABEF)。A.軟磁盤B.磁帶C.SRAMD.BIOSE.硬磁盤F.光盤.在多級存儲體系結(jié)構(gòu)中, Cache-主存結(jié)構(gòu)主要用于解決( D)的問題。A.主存容量不足 B.主存與輔存速度不匹配C.輔存與CPU速度不匹配 D.主存與CPU速度不匹配.動態(tài)RAM的特點之一是(BD)。A.能永久保存存入的信息 B.需要刷新電路不需要刷新電路 D.存取速度高于靜態(tài)RAM二、 填空題1.在分層次的存儲系統(tǒng)中, 存取速度最快、靠CPU最近且打交道最多的是 Cache存儲器,它是由DRAM類型的芯片構(gòu)成,而主存儲器則是由 SRAM類型的芯片構(gòu)成。.將存儲器與系統(tǒng)相連的譯碼片選方式有 線選法、部分地址譯碼法和全地址譯碼法。.若存儲空間的首地址為1000H,存儲容量為1KX8、2KX8、4KX8H和8KX8的存儲器所對應的末地址分別為 13FFH、17FFH、1FFFH和2FFFH。.微機系統(tǒng)中存儲器通常被視為 Cache、主存、輔存三級結(jié)構(gòu)。三、 綜合題.某微機系統(tǒng)中內(nèi)存的首地址為3000H,末地址為63FFH,求其內(nèi)存容量。答:存儲區(qū)總的單元數(shù)為: 63FFH—3000H+1=3400H,故總?cè)萘?3KB。計算方法:若直接用十六進制表示,則總?cè)萘?( 3*163+4*162)/1024;若將地址表示成二進制,則總?cè)萘? 213B+212B+210B;

2.下圖為SRAM6116芯片與8088系統(tǒng)總線的連接圖。寫出6116芯片的存儲容量;分析每片6116所占的內(nèi)存地址范圍。答:6116芯片的存儲容量是2k*8bit第一片6116的內(nèi)存地址范圍是F1000H~F17FFH第二片6116的內(nèi)存地址范圍是F1800H~F1FFFH3.利用6264芯片,在8088系統(tǒng)總線上實現(xiàn)20000H—23FFFH的內(nèi)存區(qū)域,試畫出連接電路圖。D7V O^Tr'DhD7V O^Tr'Dh砥 WERD OE4.如圖所示,IBM—PC/XT計算機擴展槽上與存儲器連接的總線信號為 20根地址線A19?A0,8根數(shù)據(jù)線D7?D0以及存儲器讀寫信號MEMR和MEMW。使用這些信號擴展1片27256(32KX8EPROM)和1片62256(32KX8RAM)。要求EPROM的起始地址為C8000H,RAM緊隨其后,使用74LS138(3—8譯碼器),采用全地址譯碼方式。

74LS138mA98765AAAAA43210^111119876543210AAAAAAAAAAAAAAAA10A9IC0D7A8D6A7D5A6D4A562256D3A4D2A3D1A2D0A1A14CEA13A12A11QOE"WEA14"CEA13A12A11A10A9A8A7IC1A527256A4A3A2D774LS138mA98765AAAAA43210^111119876543210AAAAAAAAAAAAAAAA10A9IC0D7A8D6A7D5A6D4A562256D3A4D2A3D1A2D0A1A14CEA13A12A11QOE"WEA14"CEA13A12A11A10A9A8A7IC1A527256A4A3A2D7D6D5D4D3D2D1D0A1A0OE『-Am7654321ODDDDDDDDOssMEMR.MEMW題五圖、存儲器擴展圖(1)試在圖中畫出計算機的存儲器連接圖(門電路自選)74LS138A19A18A17A16A15BA=A

z0-ml4321O^—11119876543210AAAAAAAAAAAAAAAAA14CEA13A12A11A10A9A8IC1A7A3A2D7D6D5D4D3D2D1DOA1A0OEA14■CEA13A12A11A10A9A8IC0D7D6A7D5A6D4A562256D3A4 D2A3 D1A2 D0A1A0OE"WEA527256A47654321ODDDDDDDDMEMRMEMWj題第四題圖器擴展圖(2)寫出各片存儲器的地址范圍。答:地址范圍27512:C8000~CFFFFH,62512:D0000H~D7FFFH5.設某系統(tǒng)中的數(shù)據(jù)總線寬度為8bit,地址總線寬度為16bit。若采用4Kx4的RAM芯片組成16KB的存儲系統(tǒng)。問:共需多少片4KX4的RAM芯片?這些芯片應分成多少組?每組多少片?答:共需8片RAM芯片,分成4組,每組2片。該存儲系統(tǒng)至少需要多少根地址總線?其中多少根低位地址線用于片內(nèi)自選(譯碼)?答:至少需要14根地址總線,其中12根低位地址線用于片內(nèi)自選。設該存儲系統(tǒng)從0000H開始占用一段連續(xù)地址空間,試給出每組芯片占用的地址范圍。答:OOOO~OFFFH1000~1FFFH2000~2FFFH3000~3FFFH第6章輸入輸出與中斷技術、單項選擇題1.8086CPU在執(zhí)行INAL,DX指令時,DX寄存器的內(nèi)容輸出到(A)上。A.地址總線 B.數(shù)據(jù)總線 C.存儲器D.寄存器.在CPU與外設進行數(shù)據(jù)傳送時,下列(C)方式可提高系統(tǒng)的工作效率。A.無條件傳送B.查詢傳送C.中斷傳送D.前三項均可.外部設備的端口包括 (ABC)。A.數(shù)據(jù)端口 B.狀態(tài)端口 C.控制端口 D.寫保護口4.CPU在數(shù)據(jù)線上傳輸?shù)男畔⒖赡苁?(ABC)。A.數(shù)據(jù)B.狀態(tài)C.命令D.模擬量55.PC/XT機對I/O端口的尋址方式有(A.端口直接尋址變址尋址寄存器尋址寄存器相對尋址AF)?;穼ぶ稦.DX間接尋址6.PC機在和I/O端口輸入輸出數(shù)據(jù)時,I/O數(shù)據(jù)須經(jīng)(AE)傳送。A.ALB.BLC.CLD.DLE.AXF.BXG.CXH.DX.程序查詢I/O的流程總是按(B)的次序完成一個字符的傳輸。A.寫數(shù)據(jù)端口,讀/寫控制端口 B.讀狀態(tài)端口,讀/寫數(shù)據(jù)端口C.寫控制端口,讀/寫狀態(tài)端口 D.隨I/O接口的具體要求而定。.在CPU與外設之間設計接口電路的目的主要有(ABCD)。A.解決驅(qū)動能力問題 B.控制數(shù)據(jù)傳輸速度C.完成數(shù)據(jù)形式轉(zhuǎn)換 D.負責CPU與外設的聯(lián)絡9.8086CPU工作在總線請求方式時,會讓出( D)。A.地址總線 B.數(shù)據(jù)總線C.地址和數(shù)據(jù)總線 D.地址、數(shù)據(jù)和控制總線10.CPU響應INTR引腳上來的中斷請求的條件之一是(B)。A.IF=0B.IF=1C.TF=0D.TF=111?斷點中斷的中斷類型碼是 (C)。A.1B.2C.3D.4.執(zhí)行指令IRET后彈出堆棧的寄存器先后順序為(B)。A.CS、IP、FlagsB.IP、CS、FlagsC.Flags、CS、IP D.Flags、IP、CS.若8259A工作在優(yōu)先級自動循環(huán)方式,則 IRQ4的中斷請求被響應并且服務完畢后,優(yōu)先權最高的中斷源是( B)。A.IRQ3B.IRQ5C.IRQ0D.IRQ414.PC/XT機中若對從片8259A寫入的ICW2是70H,則該8259A芯片的IRQ6的中斷類型碼是(B)。A.75HB.76HC.70HD.1D8H

15.PC/XT機中若對從片8259A寫入的ICW2是70H,則該8259A芯片的IRQ5的中斷矢量存儲的地址是(D)。A.75HB.280HC.300HD.1D4H.當向8259A寫入的操作命令字0CW2為01100100時,將結(jié)束(E)的中斷服務。A.IRQ0B.IRQ1C.IRQ2D.IRQ3E.IRQ4F.IRQ5G.IRQ6H.IRQ7.3片8259A級聯(lián)起來,可管理( C)級中斷。A.24B.23C.22D.20E.16F.15、多項選擇題1.在1.在PC機工作過程中,有(CD)。8259A所管理的中斷源優(yōu)先級將發(fā)生變化的工作方式A.全嵌套工作方式A.全嵌套工作方式C.優(yōu)先級自動循環(huán)方式B.特殊全嵌套方式優(yōu)先級特殊循環(huán)方式2.寫入8259A的ICW1為13H,則該8259A芯片的工作方式是(ADE)。A.上升沿觸發(fā)中斷請求 B.僅高電平請求中斷C.多片主從方式D.單片方式E.初始化寫入ICW4F.初始化不寫入ICW4.寫入8259A的ICW4為09H,則該8259A芯片的工作方式是(ABD)。A.全嵌套B.采用8086CPUC.多片主從方式D.緩沖方式E.自動結(jié)束中斷 F.優(yōu)先級自動循環(huán).寫入PC/XT機8259A芯片的操作命令字OCW1是36H,則被屏蔽的中斷源是(BCEF)。A.IR0 B.IR1 C.IR2 D.IR3E.IR4 F.IR5 G.IR6 H.IR78086CPU響應硬中斷NMI和INTR時,相同的條件是( BD)。A.允許中斷 B.當前指令執(zhí)行結(jié)束C.CPU工作在最大模式下 D.不處于DMA操作期間6.7.8.三、判斷題?內(nèi)部中斷的優(yōu)先權總是高于外部中斷。 (x)?兩片8259A級連后可管理16級中斷。(X)8259A所管理的中斷源中,優(yōu)先級低的中斷源不可能中斷優(yōu)先級高的中斷服務子程序。(X?若8259A的中斷屏蔽字為00H,則8259A所管理的8級中斷全被屏蔽。(X)?只要8259A所管理的中斷源沒有被屏蔽,則任何中斷源的中斷請求都能得到CPU的響應和服務。(▽)在8259A特殊完全嵌套方式中,同級的中斷可實現(xiàn)嵌套。 (“四、填空題.對I/O端口的編址一般有外設與內(nèi)存統(tǒng)一編址 方式和外設與內(nèi)存獨立編址方式。PC機采用的是獨立編址 方式。.在PC系列微機中,I/O指令采用直接尋址方式的 I/O端口有256個。采用DX間接尋址方式可尋址的 I/O端口有64K個。.數(shù)據(jù)的輸入/輸出指的是CPU與外設進行數(shù)據(jù)交換。.數(shù)據(jù)輸入/輸出的四種方式是無條件傳送方式、條件傳送方式、 中斷方式和DMA傳送方式。5.CPU在執(zhí)行OUTDX,AL指令時,DX寄存器的內(nèi)容送到地址總線上,寄存器的內(nèi)容送到數(shù)據(jù)總線上。.當CPU執(zhí)行INAL,DX指令時,M/IO引腳為低電平,RD為低電平,WR為高電平。中斷矢量就是中斷服務子程序的 入口地址,在內(nèi)存中占有4個存儲單元,其中低地址存儲單元存放的是 IP內(nèi)容,高地址存儲單元存放的是 CS內(nèi)容。中斷返回指令是IRET,該指令將堆棧中保存的斷點彈出后依次裝入 IP寄存器和CS寄存器中,將堆棧中保存的標志裝入 Flags中。CPU響應8259A中斷,在引腳INTA上輸出一2_個負脈沖,在第一2_個負脈沖期間讀入中斷類型碼。10.8086CPU共可管理256個中斷,中斷矢量表放在從 00000H地址單元到003FFH地址單元,總共有1K個字節(jié)。11.CPU響應中斷后將Flags寄存器入棧保存,然后自動將正標志和TF標志復位。若要實現(xiàn)中斷嵌套,必須在中斷服務子程序中執(zhí)行一條 開中斷指令。12.以下代碼完成8086系統(tǒng)中斷向量設置的功能, 其設置的中斷類型為 0BH,中斷服務程序入口的物理地址為 579B4H。DATASEGMENTORG2CHVAR1 DW?VAR2 DW?DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATAXORAX,AXMOVES,AXMOVAX,1234HMOVES:VAR1,AXMOVAX,5678HMOVES:VAR2,AXCODEENDS13.五、綜合題1.簡述接口編址的方法及其特點。答:給接口編地址,主要有兩種方法:獨立編址和統(tǒng)一編址。統(tǒng)一編址是指將端口和存儲單元一起進行分配地址,即端口地址占用存儲空間的一部分,使得存儲空間減少了,但對端口的訪問正如對存儲單元的訪問一樣靈活,不需設置專門的訪問端口的指令(即 I/O指令)。單獨編址是指單獨對端口進行地址分配,端口地址不占用存儲空間,但對端口的訪問需專門的指令(即I/O指令)。?微機通過接口與外設交換數(shù)據(jù)的指令有哪些?并寫出所有的格式。答:有輸入和輸出兩條指令,其格式各有四種:INAL,n OUTn,ALINAX,n OUTn,AXINAL,DX OUTDX,ALINAX,DX OUTDX,AX?試說明一般中斷系統(tǒng)的組成和功能。答:處理器內(nèi)部應有中斷請求信號的檢測電路,輸出中斷響應信號,保存斷點的邏輯,轉(zhuǎn)向中斷處理程序的邏輯,中斷返回邏輯。系統(tǒng)中要有一中斷控制器,管理多個中斷源,提供處理機所需的中斷處理信息。系統(tǒng)中請求中斷處理的 I/O接口電路要有提供中斷請求信號及接收中斷響應信號的邏輯。簡述中斷的響應過程。答:8086在中斷響應時,自動將標志寄存器 FR和斷點(CS和IP)的值入棧保存,但不將別的其它寄存器的值入棧保存,故如果中斷服務程序中用到其它寄存器時,應單獨使用指令將其它寄存器的值入棧保存,等中斷返回前再將其恢復。這一步驟稱為保護現(xiàn)場和恢復現(xiàn)場。保護現(xiàn)場和恢復現(xiàn)場應后進先出。8086只對可屏蔽中斷的響應輸出 2個總線周期的INTA,并在第2個INTA期間到DB的低8位讀入中斷類型碼,而對其它類型的中斷,由于中斷類型碼是固定的,不用到DB讀取,故沒有2個INTA總線周期。中斷響應與調(diào)子程序過程完全不同。.簡述8086系統(tǒng)的中斷分類及優(yōu)先級。答:內(nèi)部(除法除以 0、單步、斷點、溢出、指令中斷)和外部(非屏蔽、可屏蔽)兩大類。每個中斷源有一個自已特定的類型碼, 8086靠類型碼來識別不同中斷源,轉(zhuǎn)去執(zhí)行不同中斷服務程序??梢允箻酥炯拇嫫鞯腎F位和TF位為0來關閉可屏蔽中斷和單步中斷,但除法除以0中斷、溢出中斷、斷點中斷、指令中斷及非屏蔽中斷是無法關閉的??善帘沃袛嘤袑S玫闹噶頢TI(開可屏蔽中斷)和CLI(關可屏蔽中斷),但單步中斷的開或關沒有專用指令。因8086的中斷類型碼為8位的,中斷類型碼的個數(shù)為 0—FFH,最多可有256個數(shù),故8086的內(nèi)部中斷和外部中斷加起來最多可有 256個。除了可屏蔽中斷的中斷類型碼是由8259A提供的外,其它每種中斷的中斷類型碼都是固定的。8086各中斷源的優(yōu)先級從高到低依次是:除法除以0溢出中斷、斷點中斷、指令中斷非屏蔽中斷可屏蔽中斷單步中斷注意,優(yōu)先級的高低與中斷類型碼的大小沒有關系。因INTN指令中斷的優(yōu)先級高于可屏蔽中斷的優(yōu)先級, 故8086在執(zhí)行指令中斷期間不能響應可屏蔽中斷的中斷請求。什么是中斷類型碼、中斷向量、中斷向量表?在基于 8086/8088的微機系統(tǒng)中,中斷類型碼和中斷向量之間有什么關系?答:處理機可處理的每種中斷的編號為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機自動尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個默認的內(nèi)存區(qū)域。在 8086系統(tǒng)中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節(jié)內(nèi)容即為中斷向量。寫出分配給下列中斷類型號在中斷向量表中的物理地址。(1) INT12H答:00048H(2) INT8答:00020H8259A中斷控制器的功能是什么?答:8259A中斷控制器可以接受8個中斷請求輸入并將它們寄存。對 8個請求輸入進行優(yōu)先級判斷,裁決出最高優(yōu)先級進行處理,它可以支持多種優(yōu)先級處理方式。8259A可以對中斷請求輸入進行屏蔽,阻止對其進行處理。 8259A支持多種中斷結(jié)束方式。8259A與微處理器連接方便, 可提供中斷請求信號及發(fā)送中斷類型碼。8259A可以進行級連以便形成多于 8級輸入的中斷控制系統(tǒng)。畫出8259A的初始化流程圖。答:10.試按照如下要求對8259A設定初始化命令字:8086系統(tǒng)中只有一片8259A,中斷請求信號使用電平觸發(fā)方式,全嵌套中斷優(yōu)先級,數(shù)據(jù)總線無緩沖,采用中斷自動結(jié)束方式。中斷類型碼為 20H~27H,8259A的端口地址為OBOH和0B1H。并寫出8259A的初始化程序段。答:ICW仁1BH(送B0H端口),ICW2=20H(送B1H端口),ICW4=03H(送B伯端口)MOVAL,1BHOUTOBOH,ALMOVAL,20HOUT0B1H,ALMOVAL,03H

OUT0B1HOUT0B1H,AL11.8259A的中斷屏蔽寄存器IMR與8086中斷允許標志IF有什么區(qū)別?答:IF是8086微處理器內(nèi)部標志寄存器的一位,若 IF=0,8086就不響應外部可屏蔽中斷請求INTR引線上的請求信號。8

溫馨提示

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

評論

0/150

提交評論