微機原理及接口技術(shù)李干林—習(xí)題參考解答_第1頁
微機原理及接口技術(shù)李干林—習(xí)題參考解答_第2頁
微機原理及接口技術(shù)李干林—習(xí)題參考解答_第3頁
微機原理及接口技術(shù)李干林—習(xí)題參考解答_第4頁
微機原理及接口技術(shù)李干林—習(xí)題參考解答_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、(1) 35(2) 130參考答案:(1) 100011B, 23H(3) 0. 101B, 0. AH習(xí)題參考解答1.1什么是微處理器、微型計算機、微型計算機系統(tǒng)?參考答案:將運算器和控制器集成在一塊大規(guī)模集成電路芯片上作為中央處理部件,簡 稱為微處理器;以微處理器為核心,再配上存儲器、接口電路等芯片,構(gòu)成微型計算機;微型計算機系統(tǒng)由硬件和軟件系統(tǒng)兩大部分組成:(1)硬件系統(tǒng)由微型計算機和外設(shè)組 成的計算機實體;(2)軟件系統(tǒng)是指為微型計算機運行的全部技術(shù)資料和各種程序,由系統(tǒng) 軟件和應(yīng)用軟件構(gòu)成。1.2什么是微型計算機的三種總線?參考答案:系統(tǒng)總線包含有三種不同功能的總線,即數(shù)據(jù)總線DB

2、(Data Bus)、地址總 線 AB (Address Bus)和控制總線 CB (Control Bus)o“數(shù)據(jù)總線DB”用于傳送數(shù)據(jù)信息。數(shù)據(jù)總線是雙向三態(tài)形式的總線,即他既可以把CPU的數(shù)據(jù)傳送到存儲器或I / 0接口等其它部件,也可以將其它部件的數(shù)據(jù)傳送到CPUo“地址總線AB”是專門用來傳送地址的,由于地址只能從CPU傳向外部存儲器或1/ 0端口,所以地址總線總是單向三態(tài)的?!翱刂瓶偩€CB”用來傳送控制信號和時序信號。1.3評估微型計算機的主要技術(shù)指標有哪些?參考答案:評估微型計算機的主要技術(shù)指標有:(DCPU的字長,決定計算機內(nèi)部一次可 以處理的二進制代碼的位數(shù);內(nèi)存儲器容量與

3、速度,內(nèi)存儲器容量是衡量它存儲二進 制信息量大小的一個重要指標,內(nèi)存儲器的速度用存取周期來衡量;CPU指令執(zhí)行時 間,反映CPU運算速度的快慢;系統(tǒng)總線的傳輸速率等。1.4將下列十進制數(shù)分別轉(zhuǎn)換為二進制、十六進制數(shù)。 0. 625(4) 48. 25(4) 110000. 01B, 30. 4H1.5將下列二進制數(shù)分別轉(zhuǎn)換為十進制、八進制、十六進制數(shù)。(1) 101101B(2)(3) 110110. 101B(4) 101011. 011B參考答案: 38(2) 120(3) -5089(2)原碼、反碼、補碼:01111000B,0000000001111000B 一20 + (-60) 4

4、5, 55Q, 2DH(2) 230, 346Q, E6H 54. 625, 66. 5Q, 36. AH (4) 43. 375, 53. 3Q, 2B. 6H1. 6寫出下列十進制數(shù)的原碼、反碼、補碼(分別采用8位二進制和16位二進制表示)。參考答案:(1)原碼、反碼、補碼:00100110B, 0000000000100110B1.7己知補碼求出其真值和原碼。(1) 21H 93H 45A6H 0DA25H參考答案:(1)真值:+21H,原碼:21H(2)真值:-6DH,原碼:EDH 真值:+45A6H,原碼:45A6H (4)真值:-25DBH, 0A5DBH1. 8將下列十進制數(shù)轉(zhuǎn)換

5、為壓縮和非壓縮格式的BCD碼。 12(2) 55(3) 147(4) 368參考答案:(1) 00010010B, 00000001 00000010B(2) 01010101B, 00000101 00000101B1.9下列十進制數(shù)算術(shù)運算,試用8位二進制補碼計算,并用十六進制數(shù)表示運算結(jié) 果,判斷是否有溢出。 35-45(2) 80+50(3) -70-60參考答案:各數(shù)的補碼:35補=00100011B, -45補80# = 01010000B, 50補=00110010B,一 70補補-20補35+ (-45)00100011B80+5001010000B+00U0010B-70+

6、(-60)-20+ (-60)1 01111110BCy =0 , Cs =0Cy =0, Cs = lCy = 1 , Cs=OCY 二1, Cs 二 10F二 Cs 二OF二C、 Cs 二OF二CY CS 二0F二CY CS 二0 0二001=11 0二 11 1二0沒有溢出有溢出有溢出沒有溢出(1)(2)(3) -7O-6O=OU11UOB=-126,結(jié)果不正確,有溢出,因為-130超出了 8位補碼的表示 下限-128;(4)1.10分別寫出下列字符串的ASCII碼(十六進制表示)。(1) 3aB8 eF10 +5 (0: How are you?參考答案:(1)(2)(3) 2B352

7、8303AH(4)2. 1 8086CPU內(nèi)部由哪兩部分組成?它們的主要用途是什么?參考答案:8086CPU內(nèi)部按功能分執(zhí)行單元EU和總線接口單元BIUo執(zhí)行單元的功能:負責(zé)指令的執(zhí)行。同時向BIU輸出數(shù)據(jù)(操作結(jié)果),并對寄存器和 標志寄存器進行管理。在ALU中進行16位運算,數(shù)據(jù)傳送和處理均在EU控制下進行??偩€接口單元的功能:負責(zé)從內(nèi)存或I/O端口取指令、取操作數(shù)和保存運算結(jié)果。2.2 8086/8088CPU有哪些寄存器?各有什么用途?參考答案:8086/8088 CPU內(nèi)部有14個16位的寄存器,按功能可分為:通用寄存器 (8個)、段寄存器(4個)和控制寄存器(2個)。(1).通用寄

8、存器組EU中有4個16位的通用寄存器,即數(shù)據(jù)寄存器AX、BX、CX、DX。數(shù)據(jù)寄存器AX、BX、CX、DX般用來存放數(shù)據(jù),但它們都有各自的特定用途。AX稱為累加器,是最常用的寄存器。它常用來存放算術(shù)邏輯運算中的操作數(shù),而且一 些操作要在AX中完成,如乘法操作和除法操作。此外,所有的I/O指令都使用累加器與 外設(shè)端口交換信息。BX稱為基址寄存器。它常用來存放操作數(shù)在內(nèi)存中數(shù)據(jù)段內(nèi)的基地址。CX稱為計數(shù)器。在設(shè)計循環(huán)程序時一般使用該寄存器存放循環(huán)次數(shù)。DX稱為數(shù)據(jù)寄存器。在寄存器間接尋址的I/O指令中存放I/O端口地址;在做雙字長 乘除法運算時,DX與AX 起存放一個雙字長操作數(shù),其中DX存放高1

9、6位數(shù)。(2).指針和變址寄存器8086/8088CPU中,有一組4個16位寄存器,它們是基址指針寄存器BP,堆棧指針寄存 器SP,源變址寄存器SI,目的變址寄存器DI。這組寄存器存放的內(nèi)容是某一段地址偏移量, 用來形成操作數(shù)地址,主要在堆棧操作和變址運算中使用。SP稱為堆棧指針寄存器;BP稱為基址指針寄存器;SI稱為源變址寄存器;DI稱為目 的變址寄存器。.段寄存器CS、DS、SS、ES8086/8088有20位地址總線,一共可以尋址1M的空間。而所有內(nèi)部寄存器都是16 位的,只能直接尋址64KB,因此釆用分段技術(shù)來解決。將1MB的存儲空間分成若干邏輯段, 每段最長64KB,這些邏輯段在整個

10、存儲空間中可以浮動。8086/8088定義4個獨立的邏輯段,分別為:代碼段、數(shù)據(jù)段、堆棧段和附加數(shù)據(jù)段, 將程序代碼或數(shù)據(jù)分別放在這4個邏輯段中。每個邏輯段的段地址分別放在對應(yīng)的段寄存 器中,代碼或資料在段內(nèi)的偏移地址由有關(guān)寄存器或立即數(shù)給出。8086/8088的4個段寄存器:CS稱為代碼段寄存器,用來存儲程序當(dāng)前使用的代碼段的段地址(起始地址)。DS稱為數(shù)據(jù)段寄存器,用來存放程序當(dāng)前使用的數(shù)據(jù)段的段地址。SS稱為堆棧段寄存器,用來存放程序當(dāng)前所使用的堆棧段的段地址。ES稱為附加數(shù)據(jù)段寄存器,用來存放程序當(dāng)前使用的附加數(shù)據(jù)段的段地址。(4).指令指針寄存器IPIP稱為指令指針寄存器,用來存放預(yù)

11、取指令在代碼段內(nèi)的偏移地址。(5).標志寄存器FF稱為標志寄存器,是一個16位的寄存器,其中只用了 9位。分別為6個狀態(tài)標 志位和3個控制標志位。2.3 8086/8088CPU中標志寄存器有幾位狀態(tài)位?有幾位控制位?其含義各是什么?參考答案:標志寄存器是一個16位的寄存器,其中只用了 9位。分別為6個狀態(tài)標 志位和3個控制標志位。(1)狀態(tài)標志位狀態(tài)標志位用來反映算術(shù)和邏輯運算結(jié)果的一些特征。CF:進位標志位。當(dāng)進行加減運算時,若最高位發(fā)生進位或借位則CF=1,否則CF =0oPF:奇偶標志位。當(dāng)運算結(jié)果的低8位中含有偶數(shù)個1時,PF=1,否則PF=0oAF:輔助進位標志位。加法或減法運算時

12、,若結(jié)果的低字節(jié)的低4位向高4位有 進位或借位,則AF = 1;否則AF = OoZF:零標志位。若當(dāng)前的運算結(jié)果為0,則ZF=1;否則ZF=0oSF:符號標志位。與運算結(jié)果的最高位相同,當(dāng)運算結(jié)果的最高位為1時,SF二1; 否則為0o0F:溢出標志位。當(dāng)運算結(jié)果超出了帶符號數(shù)的范圍,即溢出時,OF二1;否則OF二0。 控制標志位控制標志位有3個,用來設(shè)置控制條件來控制CPU的操作,由程序設(shè)置或清除。TF:跟蹤標志位。IF:中斷允許標志位。用來控制可屏蔽中斷的控制標志。若IF二1,允許CPU接受 可屏蔽中斷請求;若IF=0,則禁止CPU回應(yīng)可屏蔽中斷請求。IF的狀態(tài)對非屏蔽中斷及 內(nèi)部中斷沒有

13、影響。DF:方向標志位??刂拼僮髦噶钣玫臉酥尽?.4Intel 8086CPU和8088CPU主要區(qū)別有哪些?參考答案:8086CPU與8088CPU的區(qū)別主要有以下4個方面:(1).內(nèi)部結(jié)構(gòu)8086的指令隊列有6B,而8088僅有4B。它們的執(zhí)行單元EU完全相同,而總線接 口單元BIU卻不完全相同。8086CPU內(nèi)、外部的數(shù)據(jù)總線(DB)都為16位,8088內(nèi)部數(shù)據(jù) 總線為16位,外部為8位。(2).引出線和內(nèi)存組織8086有一條高8位數(shù)據(jù)總線允許引出線孟,它可以看做一條附加的地址線,用來訪 問內(nèi)存的高字節(jié),而Ao用來訪問內(nèi)存的低字節(jié)。.地址/數(shù)據(jù)復(fù)用線8086的地址/數(shù)據(jù)復(fù)用線是16位A

14、%AD。;而8088僅有AD:AD。復(fù)用,As乩僅 作為地址線使用。.內(nèi)存與1/0接口選通信號電平。內(nèi)存與1/0接口選通信號電平不同:8086為M/石,即高電平進行存儲器操作,低電SP一平進行I/O操作;而8088則相反,為10/點o2.5邏輯地址和物理地址指的是什么?如果己知邏輯地址為1200: OABCDH,其物理地 址為多少?參考答案:把用段地址和偏移地址表示存儲單元的地址稱為邏輯地址,段地址和段內(nèi)偏移地址經(jīng) 20位地址加法器生成的20位地址稱為物理地址。己知邏輯地址為1200: OABCDH,其物理地址為12000H + OABCDH= 1CBCDH。2.6若CS為3000H,試說明現(xiàn)

15、行代碼段可尋址的存儲空間的范圍。參考答案:可尋址的存儲空間的范圍:30000H+0000H 30000H+FFFFH,既:30000H-3FFFFH2.7設(shè)現(xiàn)行數(shù)據(jù)段位于存儲器10000H到1FFFFH存儲單元,DS段寄存器內(nèi)容為多少? 參考答案:一個邏輯段最大范圍:0000HFFFFH,因此DS段寄存器內(nèi)容為:lOOOHo 參考答案:2. 9己知堆棧段寄存器SS二4000H,堆棧指針SP二0100H,試將數(shù)據(jù)56789ABCH推入堆棧,畫出進棧示意圖。最后棧頂SP二?參考答案:最后棧頂SP二400FCH2. 10試求出下列運算后的各個狀態(tài)標志。 1234H + 6789H(2) 23A5H

16、- 65C2H參考答案: 1234H + 6789H二79BDH, CF二0, PF二1, AF二0, ZF二0, SF二0, 0F二0:400FCH400FEH40100H 23A5H65C2H二0BDE3H, CF二1, PF二0, AF=0, ZF二0, SF二1, 0F二0。2. 11 8088CPU T作在最小模式時。(1)當(dāng)CPU訪問存儲器時,要利用哪些信號?(2)當(dāng)CPU訪問I/O時,要利用哪些信號?參考答案: I0/M=0, A19/SX6 AIG/S3, A15 As, AD:ADo, ALE,讀存儲器時:RD=0,DT/R =0 (寫存儲器時:WR=0, DT/R =1),

17、 DSJ O(2) I0/M=1,A19/SX6 AX6/S3,A15 As,AD;AD。, ALE,讀 10 端口時:RD=0,DT/R=0(寫 10 端口時:WR=0, DT/R =1), DEN o2. 12簡要說明8086/8088的指令周期、總線周期、機器周期和時鐘周期有何不同。 參考答案:(1)指令周期由若干個機器周期組成,而機器周期時間乂包含若干個時鐘周期,總線周 期一般由4個時鐘周期組成。(2)機器周期和總線周期的關(guān)系是:機器周期指的是完成一個基本操作的時間,這個基 本操作有時可能包含總線讀/寫,因而包含總線周期,但是有時可能與總線讀/寫無關(guān),所以, 并無明確的相互包含關(guān)系。2

18、. 13什么情況下插入&等待周期?插入T.多少,取決什么因素?參考答案:在Ts狀態(tài),CPU采樣READY線,若READY信號無效,插入T*狀態(tài);插入T狀態(tài)為一個至多個,直到READY信號有效,才進入T;狀態(tài)。2. 14什么情況下會出現(xiàn)總線的空閑周期?參考答案:只有在8086CPU和存儲器或I/O接口之間傳輸數(shù)據(jù)時,CPU才執(zhí)行總線周期,當(dāng)CPU 不執(zhí)行總線周期時(指令隊列6個字節(jié)己裝滿,EU未申請訪問存儲器),總線接口部件 不和總線打交道,就進入了總線空閑周期T,。在空閑周期中,雖然CPU對總線進行空操作,但是CPU內(nèi)部操作仍然進行,即EU 部件在工作。所以說,總線空操作是總線接口部件BIU對

19、總線執(zhí)行部件EU的等待。3.1指出下列傳送類指令源操作數(shù)的尋址方式。(1) MOVSI, 120(2)MOV BX, DX(3) MOVAX, 100BX DI(4)MOV DI,BX+100(4) MOVAX, 1000H(6)MOV AX, 80H(7) MOVAX, BX(8)MOV CX, BX SI參考答案:(1)立即數(shù)尋址(2)寄存器尋址(3)基址加變址尋址(4)基址尋址(5)直接尋址(6)立即數(shù)尋址(7)基址尋址(8)基址加變址尋址3. 2指出下列指令中存儲器操作數(shù)物理地址的計算表達式。(1) MOV SI,BX(2) MOV 8DI, DX(3) MOV AX,BPSI(4)

20、ADD DI, BX+1OO(5) ADD AX,1000H(6) SUB AX, BX+DI+80H(7) ADD AX,ES:BX(8) DEC WORD PTRESI參考答案:(1) DSX16+BX(2) DSX16+DI + 8(3) SSX16+BP + SI(4) DSX16+BX+100(5) DSX16 + 1000H(6) DSX16+BX+DI + 80H(7) ESX16+BX(8) DSX16+DI3.3指出下列指令中的錯誤。(1) MOV BX, AL(2) MOV CS, AX(3) MOV 100, CL(4) MOV BX, 1000H(5) PUSH 123

21、4H(6) MOV CS , 1200H(7) XCHG AH, 12H(8) INC 2000H(9) ADD BX, 10(10) OUT 258H, AX參考答案:(1)源操作數(shù)和目的操作數(shù)寄存器類型不匹配(2)代碼段寄存器CS不允許賦值(3)立即數(shù)不能做目的操作數(shù)(4)內(nèi)存單元之間不能直接傳送(5)立即數(shù)不能做堆棧指令操作數(shù)(6)代碼段寄存器CS不允許賦值(7)立即數(shù)不能做交換指令操作數(shù)(8)字類型還是字節(jié)類型不明確(9)目的操作數(shù)類型不明確(10)端口地址大于8位二進制數(shù),需要通過DX傳送。3.4設(shè)(SP)=3000H, (AX)=1234H, (BX)=5678H,指出執(zhí)行下列指令

22、后相關(guān)寄存器的 內(nèi)容。PUSHAXPUSHBXPOPAXPOPBX參考答案:執(zhí)行后,(AX)=5678H,(BX)=1234H,(SP)=3000H。3.5若AX二1234H, BX二3456H,當(dāng)執(zhí)行SUB AX, BX指令后,求AX和標志寄存器CF、AF、SF、 ZF和OF標志位的值?參考答案:(AX)=0DDDEH, CF=1, AF=1, SF=1, ZF=O, OF二0。3.6設(shè)(AH) =0F6H, (AL) =9OH,問執(zhí)行SUB AH, AL指令后,AX中的值及標志寄存器CF、 AF、SF、ZF、PF和OF標志位的值?參考答案:(AX)=6690H, CF=O, AF二0, S

23、F二0, ZF二0, OF二0, PF二1。3. 7 設(shè)(BX)=1000H, (DI)=0050H,執(zhí)行LEA BX, BX+SI-0200H后,(BX) = ?參考答案:(BX) =0E50H3.8 己知(DS)=2000H, (SS)=5000H, (AX)=0012H, (BX)=0340H, (CX)=0781H, (BP)=0035H, (SI)=0100H, (DI)=0300H, (20440H) =2104H, (20742H) =0E2AH, (20372H) = 6FD3H,試求單獨執(zhí)行下列指令后的結(jié)果。參考答案:MOVDL, BXSI;(DL) =04HMOVBPDI,

24、 CX;(50336H)=07HLEABX, 100HBXDI;(BX)=0740HMOVDX, 2BX;(DX) =0E2AHSUBSI, CX;(SI)=0F97FHXCHG CX,32HEBX;(CX) =6FD3H3.9下列指令完成什么功能?(1) NEG BX (2) MlL BL(3) DIVCL DEC AX(5) SBBAX, CXINC DL(7) ADCAX, 1000H(8) SARAL, CL(9) DAA(10) CBW參考答案:(1)將BX中的內(nèi)容求補(正數(shù)變負數(shù)或負數(shù)變正數(shù),絕對值不變)后送回BX。(2) BLXAL,結(jié)果送AX。(3) AX/CL,商存于AL,余

25、數(shù)存于AH。(4) AX中值減1,結(jié)果送回AL。(5) AX中的值減去BX中的值再減去CF中的值,結(jié)果送回AX。(6) DL中的值當(dāng)無符號數(shù)加1,結(jié)果送回DL。(7) AX中的內(nèi)容加上1000H后,再加上CF的值,結(jié)果送IBIAXO(8) AL中的值向右移,移動位數(shù)為CL中的值,AL左邊補充符號位的值。(9)將AL中的兩位BCD碼加法運算的結(jié)果調(diào)整為兩位壓縮型十進制數(shù),仍保留在AL 中。(10)將AL的最高有效位擴展至AH。3. 10 己知AX二3405H, BX二0FE1H, CX二0002H, DX二2A3EH,求下列每條指令執(zhí)行后目的操作數(shù)的結(jié)果。(1) AND AH, BL(3) NO

26、T DX(5) TEST AL, 80H(7) SHR DX, CL(9) RCL AL, 1(2) OR CL, 20H(4) XOR CX, 0FE3H(6) CMP BX, 0F123H(8) SAR AL, CL(10) ROR DX, CL參考答案:(1) (AH)二02H(2) (CL)=22H(3) (DX)二0D5B1H(4) (CX)=OFE1H(5) (AL)=05H(6) (BX)=OFE1H(7) (DX)=0A8FH(8) (AL)=01H(9) (AL)=0AH(10) (DX)=8A8FH3.11設(shè)(AX)=54D1H,執(zhí)行下列程序段指令后,求相應(yīng)的結(jié)果。MOV

27、BL, AH參考答案:MOV CL, ALADD BL, 100;BL二0B8HXCHG AL, BL;AL二0B8HSUB AL, CL;AX二54E7HJS HHAND AL, OFHHH: ADC AH, BL;AX二26E7HBL二0D1H3. 12 設(shè)(AX)=1023H、(BX)=0430H,執(zhí)行下列程序段指令后,求相應(yīng)的結(jié)果。MOV CL, 2參考答案:SHR AH, CL;AX=0423HADD BX, AX:BX二0853HJMP NEXTMUL BLNEXT:OR AX, BX;AX=0C73HHLT3. 13己知當(dāng)前數(shù)據(jù)段中有一個十進制數(shù)字09的7段ASCII表,其數(shù)值依

28、次為30H39H,其首地址為2000Hc要求用XLAT指令將十進制數(shù)46轉(zhuǎn)換成相應(yīng)的7段代碼值,存到AX寄存器中,試寫出相應(yīng)的程序段。參考答案:MOVBX,2000HMOVAL,4XLATMOVAH,ALMOV AL,6XLATHLT3. 14設(shè)有程序段:DATA SEGMENTSTRING DB Today is saturdy!*N EQU $-STRINGDATA ENDS試用字符串指令完成以下功能: 把該字符串傳送到附加段中偏移量為CHAR1開始的內(nèi)存單元中;檢查該字符串是否有“! ”字符,若有將找到的第一個“! ”用“? ”將其替換。參考答案:(1)CLDMOVCX, NLEASI,

29、 STRINGLEADI, CHARIREPMOVSBLEADI, STRINGMOVAL,!MOVex, NCLDREPNE SCASBMOVAL,5 9MOVDI,AL3. 15閱讀程序段,說明其完成的功能。MOVex,100MOVDL, 0MOVBX, 1000HLPl:MOVAL,BXCMPAL,0JNZLP2INCDLLP2:INCBXLOOP LP1MOV BX, DLHLT參考答案:程序段的功能:統(tǒng)計從數(shù)據(jù)段偏移地址1000H的100個字節(jié)單元內(nèi)容0的個數(shù),并將統(tǒng)計 結(jié)果存入數(shù)據(jù)段偏移地址為1064H的內(nèi)存單元。3. 16試編程完成(AL) X7/4的程序段,AL中的數(shù)為有符號數(shù)

30、。 參考答案:MOV BL, 7IMlL BLMOV CL, 2SAR AX, CL3. 17使用最少指令,實現(xiàn)下述要求的功能。(1)BL的高4位置1;(2)AL的低4位取反;(3)DL中的高4位移到低4位,低4位移到高4位;(4)AH的低4位移到高4位,低4位清0。參考答案:(1) OR BL,OFOH; XOR AL,OFH; MOV CL,4ROR AH,CL; MOV CL,4SHL AH,CLo3. 18在DS: 2000H為首址的內(nèi)存數(shù)據(jù)段中,存放了 10個16位帶符號數(shù),試編程將其中 最大和最小的帶符號數(shù)找出來,分別存放到以DS:3000H和DS:3002H內(nèi)存單元中。參考答案:

31、MOVSI, 2000HMOVAX, SI;AX中存放最大數(shù)MOVBX, SI;BX中存放最小數(shù)MOVex, 9FIND:ADD SI, 2MOVDX,SICMPAX, DXJGL0P1MOV AX, DXL0P1: CMP BX, DXJL LOP2MOV BX, DXLOP2: LOOP FINDMOV SI, 3000HMOV SI, AXADD SI, 2MOV SI, BXHLT3. 19設(shè)中斷類型28,中斷服務(wù)程序的起始地址為3000:0100H,它在中斷向量表中如何 存放?參考答案:NX4 = 8X4 = 32 = 20HDS: 0020H#放00H;DS: 0021H存放01H

32、;DS: 0022H存放00H;DS: 0023H存放30H。4.1下列變量各占多少字節(jié)?MlDW12, 78A3HM2DB3 DUP(?), OAH, ODH, $M3DBHOW DO YOU DO?參考答案:變量Ml占4個字節(jié),變量M2占6個字節(jié),變量M3占14個字節(jié) 4.2某程序設(shè)置的數(shù)據(jù)區(qū)如下:DATA SEGMENTORG 1000HDlDB11, 2DH, 56HD2DW32, 0ABD3H, 7634HD3DWDlD4DB$-DlD5DB4 DUP (?)D6 DB “34FSDATA ENDS畫出該數(shù)據(jù)段內(nèi)容再內(nèi)存中存放形式(要求用十六進制補碼表示,按字節(jié)組織)。參考答案:4.

33、3下面的數(shù)據(jù)定義,各條MOV指令執(zhí)行后,有關(guān)寄存器的內(nèi)容是什么?DATA1DB9DATA2DW5 DUP (?)DATA3DB,1234MOVAX, TYPE DATA1MOVBX, SIZE DATA2MOVCX, LENGTH DATA3參考答案:(AX)=1, (BX)=10,(CX) =44.4假設(shè)程序中的數(shù)據(jù)定義如下:DATA1DW9DATA2DB10 DUP (?)DATA3DD90B2D562000D3AB347600100B?99933344653D1D2D3D6D4D5MOV K, 2;在第二象限MOVBX, XMOVDX, YCMPBX, 0JZKOCMPDX, 0JZKO

34、JGK12CMPBX, 0JGK4MOVK, 3JMPEXITKO: MOVK, 0JMPEXITKI: MOVK, 1JMPEXITK4: MOVK, 4JMPEXITK12: CMP BX,JG KI;在第三象限;在坐標軸;在第一象限;在第四象限D(zhuǎn)ATA4 EQU $-DATAl求DATA4的值為多少?表示什么意義?參考答案:DATA4的值為2+10+4=16,表示下一個內(nèi)存單元距離DATA1有16個字節(jié)。4.5設(shè)平面上有一點P的直角坐標(x, y),編程實現(xiàn):如果P點落在第I象限,則 K二I;如果P點落在坐標軸上,則K二0。參考答案:X DW ?Y DW ?K DB ?JMP EXITE

35、XIT: MOV AH, 4CHINT 21H4. 6編程把字符串CHAR 11中小寫字母轉(zhuǎn)換為對應(yīng)的大寫字母,并存放在CHAR22開始的內(nèi)存單元。CHAR11DBasdfghjklCOUNTDB$-CHARI1CHAR22DBCOUNT DUP (?)參考答案:CHAR11DBasdfghjklCOUNTDB$-CHARI1CHAR22DBCOUNT DUP(?)MOVCX, COUNTMOVBX, 0LOP:MOVDL, CHAR11EBXSUBDL, 20HMOVCHAR22BX, DLINCBXLOOP LOP4.7字符串CHAR33存放有50個字節(jié)字符,設(shè)其中有字符M,編程查找第一個

36、M字符相 對字符串CHAR33起始地址的距離,并將其存放到LENTH11字節(jié)單元。參考答案:CHAR33 DB 50 DUP (?)LENTH11 DW ?MOVex,50LEADI, CHAR33NN:MOVAL, DICMPAL,JZ FIND0LOOP NNJMP EXITFINDO:LEASI, CHAR33SUBDI, SIMOVLENTH11, DIEXIT:MOVAH, 4CHINT21H4.8編程計算:(A*CB) /B,其中A、B、C均為字節(jié)變量有符號數(shù)。參考答案:ADB20HBDB93HCDB45HDDW9MOVAL, AMOVBL, CIMUL BLMOVBX, AXMO

37、VAL, BCBWSUBBX, AXMOVAX, BXMOVCL, BIDIVCL;結(jié)果在AX中,AL中為商,AH中為余數(shù)4.9編程查找出BUF數(shù)據(jù)區(qū)中帶符號數(shù)的最大數(shù)和最小數(shù),存放在MAX和存儲單元 中。參考答案:BUFDB12H,45H, 0A2H,,48HNEQU$-BUFMAXDB?MINDB?LEASI, BUFMOVCX, N-lMOVBL,SIMOVAL, BLLI: INCSIMOVDL,SICMPDL,BLJGEL2MOVBL,DLJMPNEXTL2: CMPDL, ALJLENEX TMOVAL, DL;BL中的值為兩個數(shù)比較的小值;AL中的值為兩個數(shù)比較的大值MOV MA

38、X, ALMOV MIN, BL4. 10從自然數(shù)1開始累加,直到累加和大于2000為止,統(tǒng)計被累加的自然數(shù)的個數(shù), 并把統(tǒng)計的個數(shù)送入NUMBER單元,把累加和送入SUM單元。參考答案:DATA SEGMENTNUMBER DW ?SUM DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX, DATAMOVDS, AXMOVAX, 0MOVBX, 0LP:INC BXNEXT:LOOP LIPUSHCXMOVCH, ALANDCH, OFHMOVCL, 4SHRAL, CLMOVCL, 10MULCLADDAL, CHPOP

39、CXRETBCD2BIN ENDP;存低8位;高8位右移4位后乘10;高8位加低8位ADD AX, BXCMP AX, 2000JBE LPMOV NUMBER, BXMOV SUM, AXMOV AH, 4CHINT 21HCODE ENDSEND START4.11編寫一個子程序,功能是將一個字節(jié)的BCD碼轉(zhuǎn)換成二進制數(shù)。參考答案::需稱:BCD2BIN:功能:將一個字節(jié)的BCD碼轉(zhuǎn)換成二進制:所用寄存器:CX:入口參數(shù):AL存放兩位BCD碼出口參數(shù):AL存放二進制數(shù)調(diào)用其它子程序:無BCD2BIN PROC NEAR (或 FAR)4.12設(shè)計一個軟件延時子程序,延時時間約為Is,假設(shè)系

40、統(tǒng)時鐘為8MHz。參考答案:374 次LP1: MOVCX, 374POPFLOOPLP2DECBXJNZLP1POPCXPOPBXRETDELAYIS ENDP;延時1ms;延時IS分析:軟件延時可用指令執(zhí)行消耗時間來達到,延時時間主要取決于循環(huán)體指令。從手 冊查得PUSHF和POPF指令分別為10和8個時鐘節(jié)拍,LOOP指令為3. 4個時鐘節(jié)拍,系統(tǒng) 時鐘為8MHz,每個節(jié)拍需要0. 125“s ,因此延時1ms計算循環(huán)次數(shù):Ims(10 + 8 + 3.4)*0.125/5延時Is再循環(huán)1000次。名稱:DELAY 1S功能:延時1S子程序所用寄存器:BX、CX入口參數(shù):無,出口參數(shù):無

41、調(diào)用其它子程序:無DELAY1S PROC NEARPUSH BXPUSH CXMOV BX, 1000413編寫程序,在屏幕上顯示字符串This is a sample program.參考答案:DATA SEGMENTDAI DB This is a sample program,ODH, OAH, $LP2: PUSHFDATA ENDSSTART: LEASI, CHARIMOVAH, OAHINT21HMOVAH, 8INT21HLEADX, CHAR2MOVAH, 9INT21HLEABX, CHAR1+2MOVCL, BX-1MOVCH, 0LP: MOVAH, 2;輸入姓名存C

42、HAR1+2單元;等待按鍵;顯示CHAR2開始的內(nèi)容;顯示姓名首地址;CX中為輸入姓名字符個數(shù)CODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,9LEADX,DAIINT21HMOVAH,4CHINT21HCODE ENDSENDSTART4. 14編程實現(xiàn):從鍵盤中輸入學(xué)生的姓名XYZ,當(dāng)按任意一個鍵時,屏幕上顯示出:HELLO! XYZ參考答案:CHARI DB 20DB ?DB 20 DUP (?)CHAR2 DB HELLO! , $MOV DL, BXINT 21HINC BXLOOP LP;逐個顯示名字

43、的字符5.1 DRAM為什么要刷新?參考答案:動態(tài)隨機存儲器DRAM依靠電容來保存信息。為了不丟失信息,需要再電容放電丟失信息 前,把數(shù)據(jù)讀出來再寫進去,相當(dāng)于再次給電容充電,以維持所記憶的信息,這是動態(tài)刷新。5.2設(shè)有一個具有13位地址和8位字長的存儲器,問:(1)存儲器能存儲多少字節(jié)信息?(2)如果存儲器由1KX4位RAM芯片組成,共計需要多少片?(3)需要用幾位高位地址做片選譯碼來產(chǎn)生芯片選擇信號?參考答案:(1)存儲器能存儲屮字節(jié)信息。(2)13位地址和8位字長是8KX8位,如果存儲器由1KX4位RAM芯片組成,共計需要16片。(3)需要用乩、AH.乩位高位地址做片選3-8譯碼來產(chǎn)生芯

44、片選擇信號。5.3設(shè)有16片256KX1位的SRAM芯片。(1)只釆用位擴展方法可構(gòu)成多大容量的存儲器?(2)如果采用8位的字節(jié)編址方式,該存儲器需要多少地址線?參考答案:(D256KX16位存儲器;(2)構(gòu)成的存儲器是512KX8位,219=512K,則需要19根地址線。5.4設(shè)有若干片32KX8位的SRAM芯片,設(shè)計一個總?cè)萘繛?4K的16位存儲器,需要 多少片32KX8位的SRAM芯片?參考答案:(64KX16) / (32KX8) =4,需要4片5.5如果某存儲器分別有8、12、16位地址線,對應(yīng)的存儲單元由多少?參考答案:對于的存儲單元分別是:256個、4K個、64K個。5.6己知R

45、OM的容量為8KX8,設(shè)它的首地址為30000H,那么最后一個單元地址是多少?參考答案:最后一個單元地址是:30000H + 1FFFH = 31FFFH5.7設(shè)有若干片256KB的SRAM芯片,構(gòu)成2048KB存儲器。(1)需要多少片256KB SRAM芯片?(2)構(gòu)成2048KB存儲器需要多少地址線?參考答案:(1)需要2048/256二8片256KB SRAM 芯片;(2) 2048K二護,構(gòu)成2048KB存儲器需要21地址線。5.8 CPU有16根地址線,即屆A。,計算圖5.19所示的片選信號西和0指定的基地址范圍。參考答案:西低電平有效需要A15肛全是高電平1值,cs;低電平有效需要

46、A15恥全是低電平0值。A15 仏:1111B二OFH, An Ao變化范圍:000HFFFH。因此&地址范鬧:F000HFFFFH。Aw A12 : 000B二OH, An Ao變化范圍:000HFFFH。因此&地址范闈:0000H0FFFH。6.1為什么外設(shè)要通過接I丨電路和主機系統(tǒng)相連?參考答案:微機CPU和外設(shè)信號存在速度差異、信號電平差異及驅(qū)動能力差異、信號形式差異(CPU只能處理 數(shù)字信號,而外設(shè)有數(shù)字量、模擬量、非電量等)、時序差異等問題,這些都需要通過在CPU與外設(shè)之 間設(shè)置相應(yīng)的I/O接II電路來予以解決。接II電路具有:速度協(xié)調(diào)、數(shù)據(jù)鎖存、三態(tài)緩沖、數(shù)據(jù)轉(zhuǎn)換、 中斷控制功能

47、等。6.2什么叫端1丨?通常有哪幾類端1丨?計算機對I/O端I丨編址時通常采用哪兩種方法?在 8086/8088系統(tǒng)中,用哪種方法對I/O端I I進行編址?參考答案:端I I是接I I電路中能被CPU直接訪問(讀/寫)的寄存器,每個端I I都有一個地址。一般說來,I/O接 I】電路中有3種端II:數(shù)據(jù)端【I,狀態(tài)端II和控制端II。I/O端II地址通常有兩種編址方式:一種是將內(nèi)存地址與I/O端I I地址統(tǒng)一編在同一地址空間中, 稱為存儲器映像的I/O編址方式;另一種是將內(nèi)存地址與I/O端II地址分別編在不同的地址空間中, 稱為I/O端I I單獨編址方式。在8086/8088系統(tǒng)中,采用I/O端

48、I I單獨編址方式。6.3 CPU與外設(shè)間數(shù)據(jù)傳送的控制方式有哪幾種?它們各自的優(yōu)缺點是什么?參考答案:傳送方式有:無條件傳送方式、查詢傳送方式、中斷傳送方式、以及DMA方式等。(1)無條件傳送是一種最簡單的程序控制傳送方式,CPU LO前不需要查詢外設(shè)的工作狀態(tài),任何 時候都可訪問。優(yōu)點是簡單,缺點是只有像開關(guān)、發(fā)光二極管、繼電器、步進電動機等外設(shè)在與CPU進 行信息交換時才可以采用無條件傳送方式。(2)查詢傳送方式在執(zhí)行LO操作之前,需要通過程序?qū)ν庠O(shè)的狀態(tài)進行檢查。當(dāng)所選定的外設(shè)已 準備“就緒”后,才開始進行VO操作。其優(yōu)點是使CPU能和不同速度的外設(shè)傳送數(shù)據(jù),缺點是需要占 用CPU資源

49、。(3)中斷傳送方式是指外設(shè)就緒時,主動向CPU發(fā)出中斷請求,從而使CPU去執(zhí)行相應(yīng)的 中斷服務(wù)程序,完成與外設(shè)間的數(shù)據(jù)傳送。采用中斷方式傳送,數(shù)據(jù)傳送實時性好,另外在 外設(shè)未準備就緒時,CPU還可以處理其他事務(wù),工作效率高。(4)DMA方式又叫直接存儲器存取方式,是在外設(shè)和存儲器之間開辟直接的數(shù)據(jù)傳送通路,在存儲器 和外設(shè)之間的通路上直接傳送數(shù)據(jù)。DMA方式的實現(xiàn)主要是靠硬件(DMA控制器)實現(xiàn)的,不必進行保護現(xiàn) 場等一系列額外操作,優(yōu)點是減輕了 CPU的負擔(dān),特別適合于高速度人批量數(shù)據(jù)傳送的場合。缺點是要 增設(shè)DMA控制器,硬件電路比其它方式更為復(fù)雜。6.4結(jié)合指令簡述卜圖CPU與外設(shè)以查

50、詢方式輸出數(shù)據(jù)的接I I電路工作過程(設(shè)地址譯碼數(shù)據(jù)I I地址為60H,狀態(tài)口地址為61H)。參考答案:工作過程:當(dāng)輸出裝置把CPU輸出的數(shù)據(jù)輸出以后,發(fā)出一個五信號,使D 觸發(fā)器置0,即使BUSY線為0,當(dāng)CPU輸入這個狀態(tài)信息后(經(jīng)G至D:),知道外設(shè)為“空”, 于是執(zhí)行輸出指令。待執(zhí)行輸出指令后,由地址信號和證/10及五相“與”,經(jīng)&發(fā)出選通 信號,把在數(shù)據(jù)總線上的輸出數(shù)據(jù)送至鎖存器;同時,觸發(fā)D觸發(fā)器為“1”狀態(tài),它一方面 通知外設(shè)輸出數(shù)據(jù)已準備好,可以執(zhí)行輸出操作,另一方面在數(shù)據(jù)由輸出裝置輸出以前,一 直保持為1,告知CPU (CPU通過讀狀態(tài)端口知道)外設(shè)BUSY,阻止CPU輸出新

51、的數(shù)據(jù)。查詢輸岀部分的程序如下:POLL: INAL,61H;查狀態(tài)端口中的狀態(tài)信息D:TESTAL,80HJNEPOLL;D;=l,即忙線二1,則循環(huán)再査MOVAL,SI;若外設(shè)空閑,則由內(nèi)存讀取數(shù)據(jù)OUT60H,AL;輸出到60H地址端口單元6.5什么是中斷向量表?在8086/8088的中斷向量表中有多少不同的中斷向量?若已知中斷類型號是10,說明如何在中斷向量表中查找中斷向量?參考答案:8086/8088的256個中斷處理子程序的入口地址統(tǒng)一存放在內(nèi)存的一個固定區(qū)域。每個 中斷處理子程序的入口地址占用4字節(jié)存儲單元,低地址的兩字節(jié)存放中斷處理子程序入口 地址的偏移量(IP),高地址的兩字

52、節(jié)存放段地址(CS)o這些中斷處理子程序的入口地址,稱 為中斷向量。256個中斷向量要使用256X4=1024個字節(jié),這1024字節(jié)所占的內(nèi)存區(qū)域, 稱中斷向量表。每個中斷服務(wù)程序入口地址在中斷向量表中的位置可由“中斷類型碼X4”計算出來。 若中斷類型碼n二10,則其中斷向量存放在中斷向量表00028H (10X4二40二28H)開始的連續(xù) 4個單元中。6.68086/8088的內(nèi)部中斷的特點?參考答案:內(nèi)部中斷具有如下特點:(1)內(nèi)部中斷的除法出錯中斷、溢出中斷、咽Tn中斷優(yōu)先級均高于外部中斷,外部中 斷中NMI級別高于INTR,只有單步中斷優(yōu)先級最低且低于外中斷。(2)除單步中斷外其他內(nèi)部

53、中斷均無法禁止。(3)由于中斷類型碼己確定,所以不用執(zhí)行中斷響應(yīng)周期取中斷類型碼。(4)由于內(nèi)部中斷均處于程序的固定位置處,所以無隨機性。6.78086CPU響應(yīng)可屏蔽中斷的過程。參考答案:當(dāng)8086CPU的INTR引腳有中斷申請輸入時,如果標志寄存器的IF二1, CPU響應(yīng)可屏蔽硬件中斷,并在冊引腳輸出2個低電平,時序如下圖所示。OUT DX, AL;通道0初始化_A _INTAAD:AD -(中斷類型號)-8086的中斷響應(yīng)時序由兩個連續(xù)的航中斷響應(yīng)總線周期組成,中間由空閑時鐘周期 隔開。在兩個總線周期中,航輸出為低電平,以響應(yīng)這個中斷。第1個而X總線周期表示有一個中斷響應(yīng)正在進行,這樣可

54、以使申請中斷的設(shè)備有時間 去準備在第2個航總線周期內(nèi)發(fā)出中斷類型號。在第2個而X總線周期中,中斷類型號 必須在16位數(shù)據(jù)總線的低8位(AD。AD;)上傳送給8086o因此,提供中斷類型號的中斷 接口電路8259A的8位數(shù)據(jù)線是接在8086的16位數(shù)據(jù)線的低8位上。在中斷響應(yīng)總線周期 期間,經(jīng)DT示和冏 的配合作用,使得8086可以從申請中斷的接口電路中取得一個單字節(jié) 的中斷類型號。得到中斷向量,進入中斷服務(wù)子程序。7. 1設(shè)8255A的控制口地址為83H,要求A 口工作在方式0輸出,B 口工作在方式0輸入, C 口高4位輸入,低4位輸出,試編寫8255A的初始化程序。參考答案:初始化程序:OU

55、T 83H, AL7.2下圖當(dāng)A:AA二111, AAA尸100時,二0,選中8255A。求8255A四個端口的8位地址; 電路功能為開關(guān)K;Ko隨時控制LED:LED。的亮滅,試編寫程序?qū)崿F(xiàn)功能。參考答案:4 個端口地址:FOH、F2H、F4H 和 F6H,初始化程序:OUT 0F6H, ALHH: IN AL, OFOHOUT DX, AL;通道0初始化OUT 0F2H, ALJMP HH7. 3編一初始化程序,使8255A的PC2端輸出一個負跳變。如果要求PC6端輸出一個負脈沖, 則初始化程序乂是如何?設(shè)8255A控制口地址為63Ho參考答案:8255A的PG端輸出一個負跳變程序:MOV

56、 AL, 00000101BOUT 63H, AL ; PG輸出高電平HH1: MOV CX, 10LOOP HH1;延時等待MOV AL, 00000100BOUT 63H, AL ; PG輸出低電平PCs端輸出一個負脈沖程序:MOV AL, 00001101BOUT63H, AL; PC&輸出高電平HH2: MOV CX, 10LOOPHH2;延時等待MOV AL, 00001100BOUT63H, ALPCs輸出低電平HH3: MOV CX, 10LOOP HH3 ;延時等待MOV AL, 00001101BOUT 63H, AL ; PCs輸出高電平7. 4 某系統(tǒng)中8253芯片的通道

57、0通道2和控制I I端I I地址分別為0F000H0F003H,定義通道0 工作在方式3, CLKo=5MHz,要求OUT0=lkHz方波:通道2工作在方式2,用OUT。作為計數(shù)脈沖,計 數(shù)值為1000。請編寫初始化程序。參考答案:通道0的計數(shù)值:5MHz/lkHz=5000MOV AL, 00110110BMOV DX, 0F003HCLKoGATEo8253 OUToMOV AX, 5000MOV DX, 0F000HOUT DX, ALMOV AL, AHOUT DX, AL;通道0送計數(shù)值MOV DX, 0F003HOUT DX, ALMOV AX, 1000MOV DX, 0F002HOUT DX, ALMOV AL, AHOUT DX, AL;通道2送計數(shù)值7. 5設(shè)8253的通道0通道2和控制口端口地址分別為300H, 302H, 304H, 306H,定義通道0工作 在方式3, CLKQ=2MHZO要求通道0輸出lKHz的方波。試編寫初始化程序,并畫岀碩件連線示意圖。 參考答案:計數(shù)初值:2MHz/lKHz=2000初始化程序:MOV D

溫馨提示

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

評論

0/150

提交評論