《微機原理與接口技術》 洪永強習題答案.doc_第1頁
《微機原理與接口技術》 洪永強習題答案.doc_第2頁
《微機原理與接口技術》 洪永強習題答案.doc_第3頁
《微機原理與接口技術》 洪永強習題答案.doc_第4頁
《微機原理與接口技術》 洪永強習題答案.doc_第5頁
已閱讀5頁,還剩29頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術習題及參考答案與洪永強編著的教材配套使用2008年9月2日目錄第 1 章微型計算機概述1第 2 章微處理器2第 3 章尋址方式和指令系統5第 4 章匯編語言程序設計10第 5 章輸入輸出接口13第 6 章存儲器14第 7 章中斷系統16第 8 章計數器/定時器與DMA控制器22第 9 章并行接口與串行接口24第 10 章總線28第 11 章模擬量輸入/輸出通道接口29第 12 章人機交互設備及其接口310.1下列各數均為十進制數,請用8位二進制補碼計算下列各題,并用十六進制數表示其運算結果。(1) (-85)+76(2) 85+(-76)(3) 85-76(4) 85-(-76)(5) (-85)-76(6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=01010101B-01001100B=01010101B+10110100B=00001001B=09H;CF=0;OF=0(4) 85-(-76)=01010101B-10110100B=01010101B+01001100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=10101011B-01001100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=10101011B-10110100B=10101011B+01001100B=11110111B=0F7H;CF=0;OF=0第 1 章 微型計算機概述1.1 微型計算機的發展經歷了哪幾個時代?每個時代有哪些主要特點?1.2 簡述Pentium4 微處理器的處理能力。1.3 馮諾依曼計算機的結構特點是什么?答:(1)、由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成。(2)、數據和程序以二進制代碼形式不加區別地存放在存儲器中,存放位置由地址指定,地址碼也為二進制。(3)、控制器是根據存放在存儲器中的指令序列及程序來工作的,并由一個程序計數器(即指令地址計數器)控制指令的執行。控制器具有判斷能力,能以計算結果為基礎,選擇不同的動作流程。1.4 典型微機有哪三大總線?它們傳送的是什么信息?答:(1)、有數據總線,地址總線和控制總線。(2)、數據總線用來傳輸數據信息,是雙向總線;地址總線用于傳送CPU發出的地址信息,是單向總線;控制總線用來傳送控制信號、時序信號和狀態信息等。 其中有的是CPU向內存和外設發出的信息,有的則是內存或外設向CPU發出的信息??梢姡珻B中每一根線的方向是一定的、單向的,但CB作為一個整體是雙向的。1.5 什么叫微處理器?什么叫微型計算機?什么叫微型計算機系統?這三者有什么區別和聯系?1.6 微處理器內部一般由哪些部分組成?各部分的主要功能是什么?1.7 試用示意圖說明內存單元的地址和內存單元的內容,二者有何聯系和區別?答:示意圖如有所示: 聯系:存儲單元中存放著信息,該信息可以是數據,也可以是另一單元的地址的一部分,每個存儲單元都包含著地址和內容兩個部分。都用二進制數表示,地址為無符號整數,書寫格式為16進制。區別:地址是微機用來管理內存單元而設置的,相當于內存單元的編號;而內容是存放在各個內存單元中的二進制信息。1.8 高級語言、匯編語言、機器語言有何區別?各有何特點?1.9 評價微型計算機性能的主要指標有哪些?試舉例說明現在市場主流機型微型計算機的性能參數。1.10 現代微型計算機的主板通常由哪些部分組成?主板上的總線擴展插槽有何用途?第 2 章 微處理器2.1 8086CPU從功能上分為哪兩個工作部件?每個工作部件的功能、組成和特點分別是什么?2.2 8086CPU中有幾個通用寄存器,有幾個變址寄存器,有幾個地址指針寄存器?它們中通常哪幾個寄存器可作為地址寄存器使用?答:(1)、有4個通用寄存器AX、BX、CX、DX,有2個變址寄存器SI、DI,有2個地址指針寄存器SP、BP。(2)、BX、BP、SI、DI四個寄存器可作為地址寄存器使用。2.3 8086CPU的標志寄存器中有哪些標志位?它們的含義和作用是什么?答:(1)、有6個狀態標志位CF、OF、ZF、SF、AF、PF;3個控制標志位DF、IF和TF。(2)、狀態信息由中央處理機根據計算機的結果自動設置,6位狀態位的意義說明如下:OF(OverFlag)溢出標志:帶符號數計算溢出時為1;SF(SignFlag)符號標志:運算結果為負時為1,取最高有效位;ZF(ZeroFlag)零標志:運算結果是0為1;CF(CarryFlag)進位標志:運算結果有進位為1;AF(AuxiliaryFlag)輔助進位標志:第3位有進位置1(半字節);PF(ParityFlag)奇偶進位標志:運算結果中1的個數位為偶數置1。(3)、控制信息由系統程序或用戶程序根據需要用指令設置:DF(Direction Flag)方向標志:DF為1,SI、DI減量,由高地址 向低地址處理;DF為0,SI、DI增量,由低地址向高地址處理;IF(Interupt Flag )中斷標志: IF為1時允許中斷;TF(Trap Flag)陷阱標志( 又叫跟蹤標志):每執行一條指令就引起一個內部中斷。用于單步方式操作,TF為1,指令執行完后產生陷阱,由系統控制計算機;TF為0,CPU不產生陷阱,正常工作。2.4 簡述最小模式和最大模式的含義及其區別。2.5 8086CPU的地址線有多少位?其尋址范圍是多少?答:(1)、8086CPU的地址線有20位;(2)、其尋址范圍是1MB。2.6 8086CPU工作在最小模式時,(1) 當CPU訪問存儲器時,要利用哪些信號?(2) 當CPU訪問外部設備時,要利用哪些信號?(3) 當HOLD有效并得到響應時,CPU的哪些信號是高阻?2.7 8086CPU工作在最大模式時,、在CPU訪問存儲器與CPU訪問外部設備時,分別是什么狀態?FFFFFFFFFD531FFFFEFFFFC420A19A1 D15D8 D7D0 A0高(奇)位和低(偶)位存儲器條2.8 在8086最大模式系統中,8288總線控制器的作用是什么?它產生哪些控制信號?2.9 8086采用什么方式管理內存?1MB的內存空間分為哪兩個存儲體?它們如何與地址總線、數據總線相連?答:(1)、8086采用分段方式管理內存;(2)、1MB的內存空間分為偶地址和奇地址兩個存儲體;(3)、如右圖所示:2.10 什么是段基址、偏移地址和物理地址?它們之間有什么關系?答:(1)、段基址:存儲器分段時,每個段的起始地址的低4位為0,高16位為段基址,放入段寄存器中;偏移地址:段內某內存單元的物理地址相對于段起始地址的偏移量稱為段內偏移地址,也叫有效地址;物理地址:8086/8088有20條地址線,最大內存容量為1MB(220),其中任何一個內存單元都有一個唯一的20位的地址,稱為內存單元的物理地址。(2)、物理地址(PA)=段基址10H+偏移地址(EA)2.11 對于8086,已知(DS)=1050H,(CS)=2080H,(SS)=0400H,(SP)=2000H,問:(1) 在數據段中可存放的數據最多為多少字節?首地址和末地址各為多少?(2) 堆棧段中可存放多少個16位的字?首地址和末地址各為多少?(3) 代碼段最大的程序可存放多少字節?首地址和末地址各為多少?(4) 如果先后將FLAGS、AX、BX、CX、SI和DI壓入堆棧,則(SP)=?如果此時(SP)=2300H,則原來的(SP)=?答:(1)、64KB;首地址為1050:0000H,末地址為1050:FFFFH。(2)、1000H 個16位的字;首地址為0400:0000H,末地址為0400:1FFEH。(3)、64KB;首地址為2080:0000H,末地址為2080:FFFFH。(4)、(SP)=1FF4H;原來的(SP)=230CH2.12 (3)、如右圖所示:對于8086,當(CS)=2020H時,物理地址為24200H,則當(CS)=6520H時,物理地址應轉移到什么地方?2.13 什么是總線周期?什么是時鐘周期?一個典型的總線周期最小包括幾個時鐘周期?什么情況下需要插入等待周期TW?答:(1)、總線周期:總線接口部件完成一個取指令或傳送數據的完整操作所需的最少時鐘周期數。(2)、時鐘周期:CPU輸入的CLK時鐘信號。(3)、4。(4)、當被寫入數據或者被讀取數據的外設或存儲器不能及時地配合CPU傳送數據。這時,外設或存儲器會通過“READY”信號線在T3狀態啟動之前向CPU發一個“數據未準備好的信號”,于是CPU會在T3之后插入一個或多個附加的時鐘周期TW。2.14 總線周期中每個T狀態的具體任務是什么?2.15 試畫出8086最小模式下將內存單元50326H的內容55H讀入AL的時序圖。2.16 80386CPU的主要特點是什么?2.17 80386CPU包含哪些寄存器?各有什么主要用途?2.18 什么是實地址方式?什么是保護虛擬地址方式?什么是虛擬8086方式?它們各有什么特點?2.19 80386CPU中,選擇符中3個字段的名字分別叫什么?大小各是多少?各有什么作用?2.20 一個段描述符中有幾個字節?試說明其中每個字段的含義與作用?2.21 80386的地址空間可映射到多少頁?頁有多大?2.22 頁轉換產生的線性地址的3部分各是什么?2.23 簡述Pentium的主要結構特點。2.24 Pentium內部結構的主要特點有哪些?什么是超標量結構?什么是超級流水線?2.25 簡述Pentium處理器中U和V兩個指令流水線的特點及作用。2.26 Pentium 4處理器有哪些高級特性?第 3 章 尋址方式和指令系統3.1 什么叫尋址方式?8086CPU有哪幾種尋址方式?3.2 指出下列指令中源操作數和目的操作數的尋址方式:(1)MOV AX, 0AH (2)ADDBX, DX(3)PUSH CS(4)POPDS(5)MUL BL (6)MOV DX,1200H(7)MOVSB (8)SUB AX,5BP+DI答:(1)、DEST為寄存器尋址,SRC為立即數尋址。(2)、DEST為寄存器間接尋址,SRC為寄存器尋址。(3)、DEST為隱含堆棧指針寄存器間接尋址,SRC為寄存器尋址。(4)、DEST為寄存器尋址,SRC為隱含堆棧指針寄存器間接尋址。(5)、DEST為隱含尋址,SRC為寄存器尋址。(6)、DEST為寄存器尋址,SRC為存儲器直接尋址。(7)、DEST為附加段存儲器DI隱含尋址,SRC為數據段存儲器SI隱含尋址。(串傳送)(8)、DEST為寄存器尋址,SRC為基址變址相對尋址。3.3 在直接尋址方式中,一般只指出操作數的偏移地址。試問:段地址如何確定?如果要用某個段寄存器指出段地址,指令應如何表示?答:(1)、段地址默認為是DS的內容。(2)、用短跨越前綴指出段地址。指令中用“段寄存器:”表示。3.4 當用寄存器間接尋址方式時,試問:BX、BP、SI、DI分別在什么情況下使用?它們的物理地址如何計算?3.5 分別指出下列指令中源操作數和目的操作數的尋址方式。若是存儲器尋址,試寫出其有效地址和物理地址。設(DS)=6000H,(ES)=2000H,(SS)=1500H,(SI)=00A0H,(DI)=6010H,(BX)=0800H,(BP)=1200H,數據變量VAR為0050H。(1) MOVAX, 3050H (2) MOVDL, 80H(3) MOVAX, VAR (4) MOVAX, VARBXSI(5) MOVAX, BX+25H (6) MOVDI, ES:BX(7) MOVDX, BP (8) MOVBX, 20HBX(9) ANDAX, BX (10) MOVBX, ES:SI(11) ADCAX, BX+DI (12) PUSHDS答:(1)、DEST為寄存器尋址,SRC為立即數尋址。(2)、DEST為寄存器尋址,SRC為立即數尋址。(3)、DEST為寄存器尋址,SRC為直接尋址。EA=0050H,PA=(DS)10H+EA=60050H(4)、DEST為寄存器尋址,SRC為基址變址相對尋址。EA=0050H+0800H+00A0H=08F0H,PA=(DS)10H+EA =608F0H(5)、DEST為寄存器尋址,SRC為寄存器相對尋址。EA=0800H+25H=0825H,PA=(DS)10H+EA =60825H(6)、DEST為寄存器尋址,SRC為寄存器間接尋址。EA=0800H,PA=(ES)10H+EA =20800H(7)、DEST為寄存器尋址,SRC為寄存器間接尋址。EA=1200H,PA=(SS)10H+EA =16200H(8)、DEST為寄存器尋址,SRC為寄存器相對尋址。EA=20H+0800H=0820H,PA=(DS)10H+EA =60820H(9)、DEST為寄存器尋址,SRC為寄存器尋址。(10)、DEST為寄存器尋址,SRC為寄存器間接尋址。EA=00A0H,PA=(ES)10H+EA =200A0H(11)、DEST為寄存器尋址,SRC為基址變址尋址。EA=0800H+6010H=6810H,PA=(DS)10H+EA =66810H(12)、DEST為隱含堆棧指針寄存器間接尋址,SRC為寄存器尋址。EA=(SP)-2,PA=(SS)10H+EA 3.6 設堆棧指針SP的初值為2300H,(AX)5000H,(BX)=4200H。執行指令PUSH AX后,(SP)=?,再執行指令PUSH BX及POP AX之后,(SP)=? (AX)=? (BX)=?答:(1)、(SP)=22FEH。(2)、(SP)=22FEH,(AX)=4200H,(BX)=4200H。3.7 試說明指令MOV BX,15BX與指令LEA BX,15BX的區別。答:指令MOV BX,15BX是讀取數據段偏移地址為(BX)+0FH)的內容送到BX中。指令LEA BX,15BX是取該偏移地址值(BX)+0FH送到BX中。3.8 已知(DS)=2000H,有關的內存單元值為(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,位移量COUNT=1200H。執行下列指令后,寄存器AX、BX、SI的值分別是多少?MOV BX,OFFSET COUNTMOV SI,BX MOV AX,COUNTSIBX答:(AX)= 3040H,(BX)= 1200H,(SI)= 1000H。3.9 設標志寄存器值原為0401H,AX3272H,BX=42A2H。執行下列減法指令SBB AL,BH之后,AX和標志寄存器的值分別是多少?答: (AX)= 322FH,(FR)= 0410H。3.10 設若標志寄存器原值為0A11H,SP=0060H,AL=4。下列幾條指令執行后,標志寄存器、AX、SP的值分別是多少?PUSHFLAHFXCHG AH,ALPUSH AXSAHFPOPF答:(FR)= 0411H,(AX)= 0411H, (SP)= 005EH。3.11 指出下列指令的錯誤(1) ADD SI,CL (2) MOV50,AL(3) MOV CS, AX (4) MOVDS,1234H(5) SHL AX,05H (6) XCHG200,AL(7) IN AX,378H (8) JNZBX(9) MOV AH,CX (10) MOV33H,AL(11) MOVAX,SIDI (12) MOV BX,SI(13) ADDBYTE PTR BP,256 (14) MOV DATASI,ES:AX(15) JMPBYTE PTR BX (16) OUT 230H,AX(17) MOVDS,BP (18) MUL 39H答:(1)、SI,CL字長不同。(2)、DEST不能為立即數50。(3)、DEST為CS段寄存器尋址。(4)、立即數不能直接送段寄存器。(5)、多次移位必須要用CL指出來。(6)、DEST不能為立即數200(交換指令不能有立即數尋址)。(7)、端口地址超過0FFH必須要用DX寄存器間接尋址。(8)、條件轉移指令只能用短內直接短轉移尋址,不能用寄存器尋址。(9)、AH,CX字長不同。(10)、DEST不能為立即數33H。(11)、SRC可為基址變址尋址。但不能為變址變址尋址。(12)、雙操作數指令不能同時為存儲器尋址方式。(13)、字長不同:256不是字節長度了。(14)、段跨越前綴應放在存儲器操作數或整個指令的前面。(15)、JMP指令的尋址方式不能為字節屬性。(16)、端口地址超過0FFH必須要用DX寄存器間接尋址。(17)、指令正確。(18)、8086的乘法指令不能為立即數。3.12 若內存單元DATA在數據段中偏移量為24C0H處,24C024C3H單元中依次存放著55H、66H、77H、88H。下列幾條指令執行后,寄存器AX、BX、CL、SI、DS的值分別是多少?MOV AX, DATALEA SI, DATAMOV CL, SILDS BX, DATA3.13 條件轉移指令均為相對轉移指令,請解釋“相對轉移”含義,試問若須往較遠的地方進行條件轉移,該怎么辦?3.14 假設(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=0500H,(DI)=2600H,位移量DATA=40H (217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H。試確定下列轉移指令的轉移地址。(1) JMP 2300H (2)JMP WORD PTRBX(3) JMP DWORD PTR BX+DATA(4)JMP BX(5) JMP DWORD PTR BXDI答:(1)、0200H: 2300H。CS不變(2)、0200H: 2300H。CS不變(3)、9000H: 0400H(4)、0200H: 0500H CS不變(5)、(23DA2H): (23DA0H)3.15 若32位二進制數存放于DX和AX中,試利用移位與循環指令實現以下操作:(1) DX和AX中存放的無符號數,將其分別乘2除2。(2) 若DX和AX中為有符號數,將其分別乘2和除2。答:(1)、SHL AX, 1;AX乘2RCL DX, 1;DX乘2SHR DX, 1;DX除2RCR AX, 1;AX除2(2)、SAL AX, 1;AX乘2RCL DX, 1;DX乘2SAR DX, 1;DX除2RCR AX, 1;AX除23.16 下段程序完成什么工作?DATX1 DB 300DUP(?)DATX2 DB 100DUP(?)MOV CX,100MOV BX,200MOV SI,0MOV DI,0NEST: MOV AL,DATX1 BX SIMOV DATX2 DI,ALINC SIINC DILOOP NEXT3.17 執行下列指令后,AX寄存器的內容是什么?TABLE DW 10,20,30,40,50 ;000AH, 0014H, 001EH, 0028H, 0032H0AH00H14H00H1EH00H28H00H32H00HTABLETABLE+33.17題的TABLE存儲方式ENTRY DW 3 MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答:(AX)=1E00H。存儲方式如右圖所示:3.18 分析下面的程序段完成什么功能?MOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL答:程序段將 (DX),(AX) 的雙字同時左移4位,即將此雙字乘以10H (16)。3.19 試寫出程序段把DX、AX中的雙字右移四位。3.20 當執行中斷指令時,堆棧的內容有什么變化?如何求得子程序的入口地址?3.21 試述中斷指令IRET與RET指令的區別。3.22 根據給定的條件寫出指令或指令序列:(1)將一個字節的立即數送到地址為NUM的存儲單元中(2)將一個8位立即數與地址為BUF的存儲單元內容相加(3)將地址為ARRAY的存儲單元中的字數據循環右移一位(4)將16位立即數與地址為MEM的存儲單元中的數比較(5)測試地址為BUFFER的字數據的符號位(6)將AX寄存器及CF標志位同時清零(7)用直接尋址方式將首地址為ARRAY的字數組中第5個數送往寄存器BX中(8)用寄存器尋址方式將首地址為ARRAY的字數組中第5個數送往寄存器BX中(9)用相對尋址方式將首地址為ARRAY的字數組中第8個數送往寄存器BX中(10)用基址變址尋址方式將首地址為ARRAY的字數組中第N個數送往寄存器BX中(11)將首地址為BCD_BUF存儲單元中的兩個壓縮BCD碼相加,并送到第三個存儲單元中第 4 章 匯編語言程序設計4.1 什么是匯編語言?什么是匯編語言程序?什么是匯編?什么是匯編程序?4.2 一個完整的匯編語言程序結構上有什么特點?4.3 匯編語言有哪三種基本語句?它們各自的作用是什么?4.4 邏輯運算符與邏輯運算指令中的助記符有完全相同的符號,如何區別它們?作用有何不同?4.5 下面兩條語句匯編后,兩個字節存儲單元NUM1和NUM2中的內容分別是什么?NUM1 DB(12 OR 4 AND 2) GE 0EHNUM2 DB (12 XOR 4 AND 2) LE 0EH 答:(1)、NUM1中的內容是00H;因為12不大于等于0EH(2)、NUM2中的內容是0FFH;因為12小于等于0EH4.6 下列指令執行后,字存儲單元DA1中的內容是多少?DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH SHL DA1,1SHR DA2,1答:DA1中的內容是55CDH4.7 對下面的數據定義,各條MOV指令單獨執行后,有關寄存器的內容是什么?NUMB1 DB ?NUMB2 DW 20 DUP(?)NUMB3 DB USB1) MOVAX, TYPE NUMB12) MOVAX, TYPE NUMB23) MOV CX, LENGTH NUMB24) MOV DX, SIZE NUMB25) MOV CX, LENGTH NUMB3答:1)、(AX)=12)、(AX)=23)、(CX)=0014H4)、(DX)=0028H5)、(CX)=14.8 假設程序中的數據定義如下:PNUM DW ?PNAME DB 16 DUP(?)COUNT DD ?PLETH EQU $-PNUM問PLETH 的數值是多少?它代表什么意思?答:(1)、PLETH 的數值是16H(2)、表示自PNUM開始到PLETH為止的變量占用的存儲單元數。4.9 程序中如何實現對各段寄存器和IP、棧頂的初始化?4.10 什么是宏?宏指令的功能是什么?宏與過程在匯編過程中,它們的目標代碼有什么區別?4.11 簡述程序設計的步驟。4.12 編寫程序,不用乘法計算Z=10X+Y/8,用移位運算。答:MOVAX, XSHLAX, 1;AX乘2MOVBX, AXSHLAX, 1;AX乘2SHLAX, 1;AX乘2ADD AX, BX;8X+2XMOVBX, YMOVCL, 3SHRBX;無符號數Y/8ADDAX, BX;10X+Y/8MOVZ, AX4.13 編寫程序,建立一數據表,表中連續存放1-9的平方,查表求某數字的平方。答:TABLEDB1*1,2*2,3*3,4*4,5*5,6*6,7*7,8*8,9*9MOVBX, OFFSET TABLEMOVAL, nDECALXLAT;n的平方即在AL中4.14 簡述利用跳轉表實現多路分支程序設計的思想。地址跳轉表和指令跳轉表只要區別是什么?4.15 簡述分支結構程序設計的注意事項。4.16 編寫程序,將自定義的三個符號數X、Y、Z的最大者送入MAX字單元。答:MOVAX, XCMPAX, YJGENEXTMOVAX,YNEXT:CMPAX, ZJGENEXT1MOV AX, ZNEXT1:MOV MAX, AX4.17 在A、B、C中存在有三個數,編寫程序完成如下處理:1)若有一個數為零,則將其它兩個量清為零。2)若三個數都不為零,求它們的和,并送D中。3)若三個數都為零,則將它們都置一。答:CMPA, 0JNZNEXTCMPB, 0JNZNEXT1CMPC, 0JNZNEXT1MOVA, 1MOV B, 1MOVC, 1JMP OKNEXT:CMPB, 0JZNEXT1CMPC, 0JZNEXT1MOV AX, AADDAX, BADDAX, CMOVD, AXJMP OKNEXT1:MOVA, 0MOV B, 0MOVC, 0OK:4.18 循環結構程序由哪幾部分組成?各部分的功能是什么?4.19 簡述循環結構程序設計的注意事項。4.20 編寫程序,將以STR1為首地址的字節串傳送到以STR2 為首地址的字節存儲區中。4.21 從偏移量DAT1開始存放200個帶符號的字節數據,編寫程序,找出其中最小的數放入DATA2中。4.22 子程序設計時,有哪些注意事項?4.23 調用程序和主程序之間是如何進行參數傳遞的?4.24 用主程序調用子程序的結構形式,編程實現n!=1!+2!+3!+4!+5! (提示:n!= ,n! 用n(n-1)!代替,則計算n! 子程序必須用遞歸調用n!子程序,但每次調用所使用的參數都不同。第 5 章 輸入輸出接口5.1 為什么要在CPU 與外設之間增設接口?5.2 微型計算機的接口一般應具備哪些功能?5.3 接口電路的硬件一般由哪幾部分組成?5.4 什么是端口?I/O端口的編址方式有哪些?各有什么特點?8086 系統中采用哪種編址方式?答:(1)、端口(port)是接口電路中能被CPU直接訪問的寄存器的地址。(2)、端口地址和存儲器地址統一編址,也稱存儲器映射方式;I/O端口地址和存儲器地址分開獨立編址,也稱I/O映射方式。(3)、各自的特點:存儲器映射方式的優點:1)、訪問I/O端口可實現輸入/輸出操作,還可以對端口內容進行算術邏輯運算、移位等等;2)、能給端口有較大的編址空間,這對大型控制系統和數據通信系統是很有意義的。存儲器映射方式的缺點:1)、端口占用了存儲器的地址空間,使存儲器容量減小;2)、指令長度比專門I/O指令要長,因而執行速度較慢。I/O映射方式的優點:1)、I/O端口地址不占用存儲器空間;2)、使用專門的I/O指令對端口進行操作,I/O指令短、執行速度快;3)、并且由于專門I/O指令與存儲器訪問指令有明顯的區別,使程序中I/O操作和存儲器操作層次清晰,程序的可讀性強。I/O映射方式的缺點:這種編址方式中,微處理器對存儲器及I/O端口是采用不同的控制線進行選擇的,因而接口電路比較復雜。(4)、8086 系統中采用I/O映射方式。5.5 常見的I/O端口地址譯碼電路一般有哪幾種結構形式?5.6 I/O地址線用作端口尋址時,高位地址線和低位地址線各作何用途?如何決定低位地址線的根數?答:(1)、高位地址線參加譯碼,分別產生各接口芯片的片選信號,而低位地址線作為芯片內部寄存器的訪問地址。(2)、根據接口中寄存器的數量來決定低位地址線的根數。5.7 譯碼器譯碼電路一般有哪幾部分組成?5.8 若要求I/O端口讀寫地址為264H,則在圖5-4中的輸入地址線要做哪些改動?5.9 圖5-5是PC機系統板的I/O端口地址譯碼器電路,它有何特點?試根據圖中的地址線的分配,寫出DMAC、INTR、T/C以及PPI的地址范圍?5.10 CPU與外設之間的數據傳送方式有哪些?它們各應用在什么場合?試比較這幾個基本輸入輸出方式的特點。答:(1)、程序控制方式、中斷傳送方式、直接存儲器存取方式。(2)、內容太多,略!(3)、內容太多,略!5.11 CPU 與外設進行數據傳送時,采用哪一種傳送方式CPU的效率最高?答:直接存儲器存取方式的效率最高。但是根據不同的應用場合需要不同的傳送方式,有的時候必須使用程序控制方式或者中斷傳送方式。第 6 章 存儲器6.1 什么是SRAM、DRAM、ROM、PROM、EPROM、E2PROM? 分別說明它的特點和簡單工作原理。6.2 如果要訪問一個存儲容量為64K8的存儲器,需要多少條數據線和地址線?6.3 某SRAM的單元中存放有一個數據如88H,CPU將它讀取后,該單元的內容是什么?6.4 DRAM為什么要進行定時刷新?試簡述刷新原理及過程。為了實現刷新,DRAM芯片對外部電路有什么要求?6.5 什么是FPM DRAM?什么是SDRAM?什么是DDR SDRAM?6.6 PROM和EPROM在寫入信息之前,各單元的數據是什么?6.7 已知RAM的容量為(1)16 K8 (2)32 K8 (3)64 K8 (4)2 K8如果RAM的起始地址為5000H,則各RAM對應的末地址為多少? 6.8 如果一個應用系統中ROM為8KB,最后一個單元地址為57FFH,RAM緊接著ROM后面編址,RAM為16KB,求該系統中存儲器的第一個地址和最后一個單元地址。6.9 如果存儲器起始地址為1200H,末地址為19FFH,求該存儲器的容量。6.10 存儲器與CPU的接口主要由哪些部分組成?6.11 分別說明全譯碼法、部分譯碼法和線選法的主要優缺點。6.12 若某微機有16條地址線,現用SRAM 2114(1 K4位)存儲芯片組成存儲系統,問采用線選譯碼時,系統的存儲容量最大為多少?需要多少個2114存儲器芯片?答:(1)、系統的存儲容量最大6KB。(2)、需要12個2114存儲器芯片。6.13 用10241位的RAM芯片組成16 K8位的存儲器,需要多少個芯片?分為多少組?共需多少根地址線?地址線如何分配?試畫出與CPU的連接框圖。6.14 某8088系統用2764(8 K8位)EPROM芯片和6264(8 K8位)SRAM芯片構成16KB的內存。其中,ROM的地址范圍為0FE000H0FFFFFH,RAM的地址范圍為0F00000F1FFFH。試利用74LS138譯碼,畫出存儲器與CPU的連接圖,并標出總線信號名稱。6.15 什么是Cache?它能夠極大地提高計算機的處理能力是基于什么原理?6.16 Cache與主存之間有幾種地址映像方式?分別說出其功能特點。6.17 簡述Cache的幾種替換算法,你認為應該選用哪種算法最好?6.18 什么叫虛擬存儲器?為什么要設虛擬存儲器6.19 簡述虛擬存儲器的三種方式。試說明各自的優缺點。第 7 章 中斷系統7.1 什么是中斷?什么是中斷系統?中斷系統的功能有哪些?7.2 中斷處理過程包括哪幾個基本階段?中斷服務程序中為什么要保護現場和恢復現場?如何實現?答:(1)、中斷請求、中斷判優、中斷響應、中斷處理、中斷返回。(2)、為返回到被中斷程序時,使CPU內部的寄存器內容還原為中斷前的值,以便能正確執行被中斷程序。(3)、一系列的PUSH指令來保護現場,一系列的POP指令來恢復現場。7.3 說明鏈式優先權排隊電路的工作過程。7.4 INTR中斷和NMI 中斷有什么區別?答:非屏蔽中斷NMI:邊沿觸發方式,不受IF屏蔽的中斷,中斷類型碼固定為02H,所以不需要中斷相應周期INTA。可屏蔽中斷INTR:8086的INTR中斷請求信號來自中斷控制器8259A,是電平觸發方式,高電平有效。INTR是受IF屏蔽的中斷。7.5 中斷向量表的作用是什么?如何設置中斷向量表?中斷類型號為15H 的中斷向量存放在哪些存儲器單元中?答:(1)、中斷向量表的作用是中斷號與該中斷號相應的中斷服務程序入口地址之間的連接表。即通過中斷號找到中斷向量。(2)、PC系列微機把其存儲器的000003FFH共1024個地址單元作為中斷向量表,每個中斷向量占用4字節的存儲單元,連續存放在中斷向量表中,共256個中斷類型。(3)、15H4=0054H0057H四個存儲單元中。7.6 設某系統中8259A的兩個端口地址分別為24H和25H,試分別寫出下列情況應向8259A寫入的命令字:(1)讀中斷請求寄存器IRR 的值(2)讀中斷服務寄存器ISR的值(3)讀查詢方式下的查詢狀態字(4)發一般的中斷結束命令EOI7.7 單片8259A能管理多少級可屏蔽中斷? 若用3片級聯能管理多少級可屏蔽中斷?答:(1)、8。(2)、22。7.8 8259A有哪幾種優先級控制方式? 8259A的中斷請求有哪兩種觸發方式?對請求信號有什么要求?7.9 若8086系統中使用1片8259A,中斷請求信號采用邊沿觸發方式。中斷類型號為08H0FH,采用完全嵌套、中斷非自動結束方式。8259A在系統中的連接采用非緩沖方式,它的端口地址為0FFFEH、0FFFCH。請畫出系統連接圖及編寫初始化8259A的程序段。答:系統連接圖如下圖所示。D7D0CAS2CAS0WRRDINTA IR7 INTSP/EN IR08259ACS A0D7D0S2S1S0INTR8086CPUA15A8A7A6A5A4A3A2A1+5V IOWCIORC INTA828874LS30八輸入G2A Y0 74LS138G2BG1C Y6B A Y774LS00初始化8259A的程序段如下:CLIMOVAL, 13H;初始化ICW1MOVDX, OFFFCH;1片8259A、邊沿觸發OUTDX, ALMOVAL, 08H;初始化ICW2MOVDX, OFFFEH;中斷類型號為08H0FHOUTDX, ALMOVAL, 01H;初始化ICW4OUTDX, AL;全嵌套、中斷非自動結束、非緩沖MOVAL, 00H;初始化OCW1OUTDX, AL;8259A全部開中斷STI 7.10 某系統內有8個INTR 外中斷源,用一片8259A管理8級中斷源。設8259A占用地址24H、25H,各中斷源的類型碼為40H47H,各級中斷對應的服務程序入口地址CS:IP分別為1000H:0000H、2000H:0000H、8000H:0000H。試寫出初始化程序,并編程向中斷向量表中置入各中斷向量。答:程序段如下: CLIMOVAL, 13H;初始化ICW1OUT24H, AL;1片8259A、邊沿觸發MOVAL, 40H;初始化ICW2OUT25H AL;中斷類型號為40H47HMOVAL, 01H;初始化ICW4OUT25H, AL;全嵌套、中斷非自動結束、非緩沖MOVAL, 00H;初始化OCW1OUT25H, AL;8259A全部開中斷PUSHES;向中斷向量表中置入各中斷向量MOVAX, 0000H ;中斷向量表在內存的0段MOVES, AXMOVBX, 40H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 1000HMOVBX, 41H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 2000HMOVBX, 42H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 3000HMOVBX, 43H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 4000HMOVBX, 44H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 5000HMOVBX, 45H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 6000HMOVBX, 46H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 7000HMOVBX, 47H*4MOVWORD PTR ES:BX, 0000HMOVWORD PTR ES:BX+2, 8000HPOPESSTI 7.11 編寫程序段,實現如下功能:(1)使用INT 21H的5H號功能,打印一個字符A(2)使用INT 17H的0H號功能,把字符P輸出給0號打印機(3)從通信接口COM1接收一個字符,并放入內存(4)通過通信接口COM1向外發送1個字符答:(1)、MOVDL, AMOVAH, 05HINT21H(2)、MOVDX, 0;0號打印機MOVAL, PMOVAH, 0INT17H(3)、MOVAH, 03H;從通信接口COM1接收一個字符INT21HMOVBUF, AL(4)、MOVDL, C ;通過通信接口COM1發送字符CMOVAH, 04HINT21H7.12 利用DOS 系統功能調用,完成將鍵盤輸入的小寫字母轉換為大寫字母并輸出顯示,直到輸入$字符時停止輸出答:完整程序如下: CODESEGMENTASSUMECS:CODESTART:MOVAH, 02HMOVDL, 0DH;顯示“回車”INT21HMOVAH, 02HMOVDL, 0AH;顯示“換行”INT21HINPUT:MOVAH, 01H;鍵盤輸入一個字符回顯功能INT21HCMPAL, $ ;$字符?JEINPUT_ENDCMPAL, a ;az字符?JBINPUTCMPAL, z JAINPUTANDAL, 0DFH;小寫字母轉換為大寫字母MOVAH, 02HMOVDL, AL;顯示

溫馨提示

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

最新文檔

評論

0/150

提交評論