




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 計算機應用基礎A 第1章 基礎知識部分1.1 計算機中常用的計數制有哪些? 解:二進制、八進制、十進制(BCD)、十六進制。1.2 什么是機器碼?什么是真值? 解:把符號數值化的數碼稱為機器數或機器碼,原來的數值叫做機器數的真值。 1.3 完成下列數制的轉換。微型計算機的基本工作原理 匯編語言程序設計 微型計算機接口技術 建立微型計算機系統的整體概念,形成微機系統軟硬件開發的初步能力。 解: (1)166,A6H (2)0.75 (3)11111101.01B, FD.4H (4 ) 5B.AH, (10010001.011000100101)BCD 1.4 8位和16位二進制數的原碼、補碼
2、和反碼可表示的數的范圍分別是多少? 解: 原碼(-127+127)、(-32767+32767) 補碼 (-128+127)、(-32768+32767) 反碼(-127+127)、(-32767+32767) 1.5 寫出下列真值對應的原碼和補碼的形式。(1)X= -1110011B (2)X= -71D (3)X= +1001001B 解: (1)原碼:11110011 補碼:10001101 (2)原碼:11000111 補碼:10111001 (3)原碼:01001001 補碼:01001001 1.6 寫出符號數10110101B的反碼和補碼。解:11001010,11001011
3、1.7 已知X和Y的真值,求X+Y的補碼。(1)X=-1110111B Y=+1011010B (2)X=56D Y= -21D 解: (1)11100011 (2)00100011 1.8 已知X= -1101001B,Y= -1010110B,用補碼求X-Y的值。解:11101101 1.9 請寫出下列字符的ASCII碼。4A3- ! 解:34H,41H,33H,3DH,21H 1.10 若給字符4和9的ASCII碼加奇校驗,應是多少? 解:34H,B9H 1.11 上題中若加偶校驗,結果如何? 解:B4H,39H 1.12 計算下列表達式。 (1) (4EH+10110101B)x(0.
4、0101)BCD=( )D (2)4EH-(24/08H+B/2)=( )B 解: (1) 129.5D (2)101010B 第2章微型計算機基礎2.6 簡述CPU執行程序的過程。解:當程序的第一條指令所在的地址送入程序計數器后,CPU就進入取指階段準備取第一條指令。在取指階段,CPU從內存中讀出指令,并把指令送至指令寄存器IR暫存。在取指階段結束后,機器就進入執行階段,這時,由指令譯碼器對指令譯碼,再經控制器發出相應的控制信號,控制各部件執行指令所規定的具體操作。當一條指令執行完畢以后,就轉入了下一條指令的取指階段。以上步驟周而復始地循環,直到遇到停機指令。2.7說明8086的EU和BIU
5、的主要功能。在執行程序過程中他們是如何相互配合工作的? 解:執行單元EU負責執行指令。EU在工作時不斷地從指令隊列取出指令代碼,對其譯碼后產生完成指令所需要的控制信息。數據在ALU中進行運算,運算結果的特征保留在標志寄存器FLAGS中。總線接口單元BIU負責CPU與存儲器、I/O接口之間的信息傳送。BIU取出的指令被送入指令隊列供EU執行,BIU取出的數據被送入相關寄存器中以便做進一步的處理。當EU從指令隊列中取走指令,指令隊列出現空字節時,BIU就自動執行一次取指令周期,從內存中取出后續的指令代碼放入隊列中。當EU需要數據時,BIU根據EU給出的地址,從指定的內存單元或外設中取出數據供EU使
6、用。當運算結束時,BIU將運算結果送入指定的內存單元或寄存器。當指令隊列空時,EU就等待,直到有指令為止。若BIU正在取指令,EU發出訪問總線的請求,則必須等BIU取指令完畢后,該請求才能得到響應。一般情況下,程序順序執行,當遇到跳轉指令時,BIU就使指令隊列復位,從新地址取出指令,并立即傳送EU去執行。指令隊列的存在使8086/8088的EU和BIU并行工作,從而減少了CPU為取指令而等待的時間,提高了CPU的利用率,加快了整機的運行速度。另外也降低了對存儲器存取速度的要求。2.8 在執行指令期間,BIU能直接訪問存儲器嗎?為什么? 解:可以.因為EU和BIU可以并行工作,EU需要的指令可以
7、從指令隊列中獲得,這時BIU預先從存儲器中取出并放入指令隊列的。在EU執行指令的同時,BIU可以訪問存儲器取下一條指令或指令執行時需要的數據。2.9 8086與8088CPU的主要區別有哪些? 解:主要區別有以下幾點: 8086的外部數據總線有16位,而8088的外部數據總線只有8位。8086指令隊列深度為6個字節,而8088的指令隊列深度為4個字節. 因為8086的外部數據總線有16位,故8086每個總線周期可以存取兩個字節.而8088的外部數據總線因為只有8位,所以每個總線周期只能存取1個字節. 個別引腳信號的含義稍有不同. 2.10 8088CPU工作在最小模式下: (1)當CPU訪問存
8、儲器時,要利用哪些信號? (2)當CPU進行I/O操作時,要利用哪些信號? (3)當HOLD有效并得到響應時,CPU的哪些信號置高阻? 解: (1)要利用信號線包括WR#、RD#、IO/M#、ALE以及AD0AD7、A8A19。(2)同(1)。(3)所有三態輸出的地址信號、數據信號和控制信號均置為高阻態。2.11 總線周期中,什么情況下要插入TW 等待周期?插入TW周期的個數,取決于什么因素? 解:在每個總線周期的T3的開始處若READY為低電平,則CPU在T3后插入一個等待周期TW。在TW的開始時刻,CPU還要檢查READY狀態,若仍為低電平,則再插入一個TW 。此過程一直進行到某個TW開始
9、時,READY已經變為高電平,這時下一個時鐘周期才轉入T4。可以看出,插入TW周期的個數取決于READY電平維持的時間。2.12 若8088工作在單CPU方式下,在教材第91頁的表中填入不同操作時各控制信號的狀態。解:結果如表所示。 2.13 在8086/8088 CPU中,標志寄存器包含哪些標志位?各位為0(為1)分別表示什么含義? 解:(略),見書第49頁。2.14 8086/8088 CPU中,有哪些通用寄存器和專用寄存器?說明它們的作用。解:通用寄存器包含以下8個寄存器: AX、BX、CX和DX寄存器一般用于存放參與運算的數據或運算的結果。除此之外: AX:主要存放算術邏輯運算中的操作
10、數,以及存放I/O操作的數據。BX:存放訪問內存時的基地址。CX:在循環和串操作指令中用作計數器。DX:在寄存器間接尋址的I/O指令中存放I/O地址。在做雙字長乘除法運算時,DX與AX合起來存放一個雙字長數。SP:存放棧頂偏移地址。BP:存放訪問內存時的基地址。 SP和BP也可以存放數據,但它們的默認段寄存器都是SS。SI:常在變址尋址方式中作為源地址指針。DI:常在變址尋址方式中作為目標地址指針。專用寄存器包括4個段寄存器和兩個控制寄存器: CS:代碼段寄存器,用于存放代碼段的段基地址。DS:數據段寄存器,用于存放數據段的段基地址。SS:堆棧段寄存器,用于存放堆棧段的段基地址。ES:附加段寄
11、存器,用于存放附加段的段基地址。IP:指令指針寄存器,用于存放下一條要執行指令的偏移地址。FLAGS:標志寄存器,用于存放運算結果的特征。2.15 8086/8088 系統中,存儲器為什么要分段?一個段最大為多少個字節?最小為多少個字節? 解:分段的主要目的是便于存儲器的管理,使得可以用16位寄存器來尋址20位的內存空間。一個段最大為64KB,最小為16B。2.16 在8086/8088 CPU中,物理地址和邏輯地址是指什么?已知邏輯地址為1F00:38A0H,如何計算出其對應的物理地址? 解:物理地址時CPU存取存儲器所用的地址。邏輯地址是段和偏移地址形式的地址,即匯編語言程序中使用的存儲器
12、地址。若已知邏輯地址為1F00:38A0H,則對應的物理地址=1F00H x 16+38A0H=228A0H。2.17 已知存儲器物理地址為78A00H,計算出它所對應的邏輯地址。此結果惟一嗎? 解:物理地址可以對應于不同的邏輯地址。78A00H對應的邏輯地址可以是7000H:8A00H,7800H:0A00H,78A0H:0000H等。結果不是惟一的。2.18 設當前數據段位于存儲器的A8000HB7FFFH,DS段寄存器的內容應是什么? 解:因為A8000H到B7FFFH之間的地址范圍大小為64KB,未超出一個段的最大范圍。故要訪問此地址范圍的數據,數據段的起始地址(即段首地址)應為A80
13、00H,則DS段寄存器為A800H。2.19 若CS=8000H,則當前代碼段可尋址的存儲空間的范圍是多少? 解(CS)=8000H時,當前代碼段可尋址的存儲空間范圍為80000H8FFFFH。2.20 8086/8088 CPU 在最小模式下構成計算機系統至少應包括哪幾個基本部分(器件)? 解:其至少應包括:8088CPU、8284時鐘發生器、8282鎖存器(3片)和8286雙向總線驅動器。第3章 8088/8086指令系統3.1什么叫尋址方式?8086/8088CPU共有哪幾種尋址方式? 解:尋址方式主要是指獲得操作數所在地址的方法. 8086/8088CPU具有:立即尋址、直接尋址、寄存
14、器尋址、寄存器間接尋址、寄存器相對尋址、基址一變址尋址、基址一變址相對尋址以及隱含尋址等8種尋址方式。3.2設(DS)=6000H,(ES)=2000H,(SS)=1500H,(Si)=00A0H,(BX)=0800H,(BP)=1200H,數據變量VAR為0050H. 請分別指出下列各條指令源操作數的尋址方式?它的物理地址是多少? (1) MOV AX,BX (2) MOV DL,80H (3) MOV AX, VAR (4) MOV AX,VARBXSI (5) MOV AL,'B' (6) MOV DI, ES: BX (7) MOV DX,BP (8) MOV BX,2
15、0HBX 解: (1)寄存器尋址。因源操作數是寄存器,故寄存器BX就是操作數的地址. (2)立即尋址。操作數80H存放于代碼段中指令碼MOV之后。 (3)直接尋址。(4)基址一變址一相對尋址 操作數的物理地址=(DS) × 16(SI)(BX)VAR = 60000H00A0H0800H0050H608F0H (5)立即尋址(6)寄存器間接尋址. 操作數的物理地址= (ES) × 16(BX) = 20000H0800H = 20800H (7)寄存器間接尋址。操作數的物理地址= (SS) × 16(BP) = 15000H1200H= 16200H (8)寄存器
16、相對尋址 操作數的物理地址(DS) × 16(BX)20H = 60000H0800H20H= 60820H 3.3 假設(DS)= 212AH,(CS)= 0200H,(IP)= 1200H,(BX)= 0500H,位移量DATA=40H,(217A0H) =2300H,(217E0H)=0400H,(217E2H) =9000H 試確定下列轉移指令的轉移地址. (1) JMP 2300H (2) JMP WORD PTRBX (3) JMP DWORD PTRBX+DATA 解:轉移指令分為段內轉移和段間轉移,根據其尋址方式的不同,又有段內的直接轉移和間接轉移,以及段間的直接轉移
17、和間接轉移地址。對直接轉移,其轉移地址為當前指令的偏移地址(即IP的內容)加上位移量或由指令中直接得出;對間接轉移,轉移地址等于指令中寄存器的內容或由寄存器內容所指向的存儲單元的內容。 (1) 段內直接轉移。轉移的物理地址=(CS) × l6 +2300H =02000H+2300H=04300H (2)段內間接轉移。轉移的物理地址= (CS) × 16+ BX = (CS) × l6+(217A0H) =02000H+2300H=04300H (3)段間間接轉移。轉移的物理地址=BX+DATA =(217E2H) × l6+(217E0H) =9000
18、0H+0400H=90400H 3.4試說明指令MOV BX,5BX與指令LEA BX,5BX的區別。解:前者是數據傳送類指令,表示將數據段中以(BX+5)為偏移地址的16位數據送寄存器BX. 后者是取偏移地址指令,執行的結果是(BX)= (BX)5,即操作數的偏移地址為(BX)+5。 3.5設堆棧指針SP的初值為2300H,(AX)50ABH,(BX)=1234H。執行指令PUSH AX后,(SP)?,再執行指令PUSH BX及POP AX之后,(SP)= ?(AX)= ?(BX)? 解:堆棧指針SP總是指向棧頂,每執行一次PUSH指令SP-2,執行一次POP指令SP+2.所以,執行PUSH
19、 AX指令后,(SP)=22FEH;再執行PUSH BX及POP AX后,(SP)=22FEH,(AX)=(BX)=1234H 3.6 指出下列指令的錯誤: (1) MOV AH,CX (2) MOV 33H,AL (3) MOV AX, SIDI (4) MOV BX,SI (5) ADD BYTE PTRBP,256 (6) MOV DATASI,ES:AX (7) JMP BYTE PTRBX (8) OUT 230H,AX (9) MOV DS,BP (10) MUL 39H 解: (1)指令錯。兩操作數字長不相等 (2)指令錯。MOV指令不允許目標操作數為立即數 (3) 指令錯。在間
20、接尋址中不允許兩個間址寄存器同時為變址寄存器。 (4)指令錯。MUV指令不允許兩個操作數同時為存儲器操作數。 (5)指令錯。ADD指令要求兩操作數等字長。 (6)指令錯。源操作數形式錯,寄存器操作數不加段重設符。 (7)指令錯。轉移地址的字長至少應是16位的。 (8)指令錯。對輸人輸出指令,當端口地址超出8位二進制數的表達范圍(即尋址的端口超出256個)時,必須采用間接尋址。(9)指令正確。 (10)指令錯。MUL指令不允許操作數為立即數。 3.7 已知(AL) =7BH, (BL) =38H,試問執行指令ADD AL, BL后,AF、CF、OF、PF、SF和ZF的值各為多少? 解:AF=1,
21、CF=0,OF=1,PF=0,SF=l,ZF=0 3.8 試比較無條件轉移指令、條件轉移指令、調用指令和中斷指令有什么異同? 解:無條件轉移指令的操作是無條件地使程序轉移到指定的目標地址,并從該地址開始執行新的程序段,其轉移的目標地址既可以是在當前邏輯段,也可以是在不同的邏輯段;條件轉移指令是在滿足一定條件下使程序轉移到指定的目標地址,其轉移范圍很小,在當前邏輯段的-128+127地址范圍內。調用指令是用于調用程序中常用到的功能子程序,是在程序設計中就設計好的。根據所調用過程人口地址的位置可將調用指令分為段內調用(入口地址在當前邏輯段內)和段間調用。在執行調用指令后,CPU要保護斷點。對段內調
22、用是將其下一條指令的偏移地址壓人堆棧,對段間調用則要保護其下一條指令的偏移地址和段基地址,然后將子程序人口地址賦給IP(或CS和IP) 中斷指令是因一些突發事件而使CPU暫時中止它正在運行的程序,轉去執行一組專門的中斷服務程序,并在執行完后返回原被中止處繼續執行原程序。它是隨機的。在響應中斷后CPU不僅要保護斷點(即INT指令下一條指令的段地址和偏移地址),還要將標志寄存器FLAGS壓入堆棧保存。3.9 試判斷下列程序執行后,BX中的內容 MOV CL, 3 MOV BX,0B7H ROL BX,1 ROR BX,CL 解:該程序段是首先將BX內容不帶進位循環左移1位,再循環右移3位。即相當于
23、將原BX內容不帶進位循環右移2位,故結果為:(BX)=0C02DH 3.10按下列要求寫出相應的指令或程序段。 (1)寫出兩條使AX內容為0的指令。 (2)使BL寄存器中的高4位和低4位互換。 (3)屏蔽CX寄存器的bll,b7和b3位。 (4)測試DX中的b0和b8位是否為1。解: (1) MOV AX,0 XOR AX,AX ;AX寄存器自身相異或,可使其內容清0 (2) MOV CL, 4 ROL BL,CL ;將BL內容循環左移4位,可實現其高4位和低4位 的互換(3) AND CX,0F777H ;將CX寄存器中需屏蔽的位“與”0。也可用 “或”指令實現(4) AND DX,0101
24、H ;將需側試的位“與”1,其余“與”0屏蔽掉 CMP DX,0101 H ;與0101H比較 JZ ONE ;若相等則表示b0和b8位同時為1 . . . 3.11 分別指出以下兩個程序段的功能: (1) (2) MOV CX,l0 CLD LEA SI,FIRST LEA DI, 1200H LEA DI, SECOND MOV CX,0FOOH STD XOR AX,AX REP MOVSB REP STOSW 解: (1)該段程序的功能是:將數據段中FIRST為最高地址的10個字節數據按減地址方向傳送到附加段SECOND為最高地址的向前10個單元中。 (2)將附加段中偏移地址為1200
25、H單元開始的0FOOH個字單元清0。 3.12 執行以下兩條指令后,標志寄存器FLAGS的六個狀態位各為什么狀態? MOV AX,84A0H ADD AX,9460H 解:執行ADD指令后,6個狀態標志位的狀態分別為: 在兩個16位數進行加法運算時,對CF、ZF、SF和OF會產生影響,但對PF和AF標志位,只有其低8位的運算影響它們的狀態。各標志位的狀態分別為:AF=0,PF=1,CF=1,ZF=0,SF=0,OF=1。3.13將+46和-38分別乘以2,可應用什么指令來完成?如果除以2呢? 解:因為對二進制數,每左移一位相當于乘以2,右移一位相當于除以2。所以,將+46和-38分別乘以2,可
26、分別用邏輯左移指令(SHL)和算術左移指令(SAL) 完成。SHL指令針對無符號數,SAL指令針對有符號數。當然,也可以分別用無符號數乘法指令MUL和有符號數乘法指令IMUL完成。如果是除以2,則進行相反操作,即用邏輯右移指令SHR或無符號數除法指令DIV實現+46除以2的運算,用算術右移指令SAR或有符號數除法指令IDIV實現-38除以2的運算。3.14已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,內容為40H;PORT2的地址是84H,內容為85H。請指出下列指令執行后的結果。 (1)OUT DX, AL (2) IN AL,PORT1 (3) OUT DX,AX
27、(4) IN AX,48H (5) OUT PORT2,AX 解: (1)將60H輸出到地址為03F8H的端口中。 (2) 從PORT1讀入一個字節數據,執行結果:(AL)=40H。 (3) 將 AX=8060H輸出到地址為03F8H的端口中。 (4)由48H端口讀人16位二進制數。 (5)將8060H輸出到地址為84H的端口中。第4章匯編語言程序設計4.1請分別用DB 、DW 、DD偽指令寫出在DATA開始的連續8個單元中依次存放數據11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的數據定義語句. 解:DB,DW,DD偽指令分別表示定義的數據為字節類型、字類型及雙
28、字型.其定義形式為: DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8877H DATA DD 44332211H,88776655H 4.2若程序的數據段定義如下,寫出各指令語句獨立執行后的結果: DSEG SEGMENT DATA1 DB 10H,20H,30H DATA2 DW 10 DUP(?) STRING DB 123 DSEG ENDS (1) MOV AL,DATA1 (2) MOV BX,OFFSET DATA2 (3) LEA SI,STRING ADD DI,SI 解: 取變量DATA1
29、的值. 指令執行后,(AL)=10H. 變量DATA2的偏移地址. 指令執行后,(BX)=0003H. (3)先取變量STRING的偏移地址送寄存器SI,之后送SI的內容與DI的內容相加并將結果送DI.指令執行后,(SI)=0017H;(DI)=(DI)+0017H. 4.3 試編寫求兩個無符號雙子長數之和的程序. 兩數分別在MEM1和MEM2單元中,和放在SUM單元. 解: DSEG SEGMENT MEM1 DW 1122H,3344H MEM2 DW 5566H,7788H SUM DW 2 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:
30、DSEG START: MOV AX,DSEG MOV DS,AX LEA BX,MEM1 LEA SI,MEM2 LEA DI,SUM MOV CL,2 CLC AGAIN: MOV AX,BX ADC AX,SI MOV DI,AX ADD BX,2 ADD SI,2 ADD DI,2 LOOP AGAIN HLT CSEG ENDS END START 4.4試編寫程序,測試AL寄存器的第4位(bit4)是否為0? 解: 測試寄存器AL中某一位是否為0,可使用TEST指令、AND指令、移位指令等幾種方法實現。如:TEST AL,10H JZ NEXT . . . NEXT: 或者: MO
31、V CL,4 SHL AL,CL JNC NEXT . NEXT: 4.5 試編寫程序,將BUFFER中的一個8位二進制數轉換為ASCII碼,并按位數高低順序存放在ANSWER開始的內存單元中。解: DSEG SEGMENT BUFFER DB ? ANSWER DB 3 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV CX,3 ;最多不超過3為十進制數(255) LEA DI, ANSWER ;DI指向結果存放單元 XOR AX,AX MOV AL,BUFFER ;取要轉
32、換的二進制數 MOV BL,0AH ;基數10 AGAIN:DIV BL ;用除10取余的方法轉換 ADD AH,30H ;十進制數轉換成ASCII碼 MOV DI, AH ;保存當前的結果 INC DI ;指向下一個位保存單元AND AL,AL ;商為0?(轉換結束?) JZ STO ;若結束,退出 MOV AH,0 LOOP AGAIN ;否則循環繼續STO: MOV AX,4C00H INT 21H ;返回DOS CSEG ENDS END START 4.6 假設數據項定義如下: DATA1 DB HELLO !GOOD MORNING ! DATA2 DB 20 DUP(?) 用串操
33、作指令編寫程序段,使其分別完成以下功能: (1)從左到右將DATA1中的字符串傳送到DATA2中。(2)傳送完后,比較DATA1和DATA2中的內容是否相同。(3)把DATA1中的第3和第4個字節裝入AX。(4)將AX的內容存入DATA2+5開始的字節單元中。解: (1) MOV AX,SEG DATA1 MOV DS,AX MOV AX,SEG DATA2 MOV ES,AX LEA SI,DATA1 LEA DI,DATA2 MOV CX,20 CLD REP MOVSB (2) LEA SI,DATA1 LEA DI,DATA2 MOV CX,20 CLD REPE CMPSB 。(3)
34、 LEA SI,DATA1 ADD SI,2 LODSW (4)LEA DI,DATA2 ADD DI,5 STOSW 4.7執行下列指令后,AX寄存器的內容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX 解:(AX)=1E00H 4.8 編寫程序段,將STRING1中的最后20個字符移到STRING2中(順序不變)。解:首先確定STRING1中字符串的長度,因為字符串的定義要求以$符號結尾, 可通過檢測$符確定出字符串的長度,設串長度為COUNT,則程序如下: L
35、EA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD REP MOVSB 4.9 假設一個48位數存放在DX:AX:BX中,試編寫程序段,將該48位數乘以2. 解: 可使用移位指令來實現。首先將BX內容邏輯左移一位,其最高位移入進位位CF,之后AX內容帶進位位循環左移,使AX的最高位移入CF,而原CF中的內容(即BX的最高位)移入AX的最低位,最后再將DX內容帶進位位循環左移一位,從而實現AX的最低位移入DX的最低位。 SHL BX,1 RCL AX,1 RCL DX,1 4.10 試編寫程序,比較AX,BX,CX中帶符號數的大小
36、,并將最大的數放在AX中。 解:比較帶符號數的大小可使用符號數比較指令JG等。 CMP AX,BX JG NEXT1 XCHG AX,BX NEXT1:CMP AX,CX JG STO MOV AX,CX STO:HLT 4.11 若接口03F8H的第1位(b1)和第3位(B3)同時為1,表示接口03FBH有準備好的8位數據,當CPU將數據取走后,b1和b3就不再同時為1了。僅當又有數據準備好時才再同時為1。試編寫程序,從上述接口讀入200字節的數據,并順序放在DATA開始的地址中。解:即當從輸入接口03F8H讀入的數據滿足11B時可以從接口03FBH輸入數據。 LEA SI,DATA MOV
37、 CX,200 NEXT: MOV DX,03F8H WAIT: IN AL,DX AND AL,0AH ;判斷b1和b3位是否同時為1 CMP AL,0AH JNZ WAIT ;b1和b3位同時為1則讀數據,否則等待 MOV DX,03FBH IN AL,DX MOV SI,AL INC SI LOOP NEXT HLT 4.12 畫圖說明下列語句分配的存儲空間及初始化的數據值。(1)DATA1 DB BYTE,12,12H,2 DUP(0,?,3) (2)DATA2 DW 4 DUP(0,1,2),?,-5,256H 解: (1) 存儲空間分配情況如圖(a)所示。(2) 存儲空間分配情況如
38、圖(b)所示。第5章存儲器系統 5.1 內部存儲器主要分為哪兩類? 它們的主要區別是什么? 解: (1)分為ROM 和 RAM 。(2)它們之間的主要區別是: 。ROM在正常工作時只能讀出,不能寫入。RAM則可讀可寫。斷電后,ROM中的內容不會丟失,RAM中的內容會丟失。5.2 為什么動態RAM需要定時刷新? 解:DRAM的存儲元以電容來存儲信息,由于存在漏電現象,電容中存儲的電荷會逐漸泄漏,從而使信息丟失或出現錯誤。因此需要對這些電容定時進行“刷新”。5.3 CPU尋址內存的能力最基本的因素取決于_。解:地址總線的寬度。 5.4 試利用全地址譯碼將6264芯片接到8088系統總線上,使其所占
39、地址范圍為32000H33FFFH。 解:將地址范圍展開成二進制形式如下圖所示。 0011 0010 0000 0000 0000 0011 0011 1111 1111 1111 6264芯片的容量為8×8KB,需要13根地址線A0A12。而剩下的高7位地址應參加該芯片的地址譯碼。電路如圖所示: 5.5 內存地址從20000H8BFFFH共有多少字節? 解:共有8BFFFH20000H16C000H個字節。或432KB。5.6 若采用6264芯片構成上述的內存空間,需要多少片6264芯片? 解:每個6264芯片的容量位8KB,故需432/854片。5.7 設某微型機的內存RAM區的
40、容量位128KB,若用2164芯片構成這樣的存儲器,需多少2164芯片?至少需多少根地址線?其中多少根用于片內尋址?多少根用于片選譯碼? 解: (1)每個2164芯片的容量為64K×1bit,共需128/64×816片。(2)128KB容量需要地址線17根。(3)16根用于片內尋址。(4)1根用于片選譯碼。注意,用于片內尋址的16根地址線要通過二選一多路器連到2164芯片,因為2164芯片是DRAM,高位地址與低位地址是分時傳送的。5.8 現有兩片6116芯片,所占地址范圍為61000H61FFFH,試將它們連接到8088系統中。并編寫測試程序,向所有單元輸入一個數據,然后
41、再讀出與之比較,若出錯則顯示“Wrong !“,全部正確則顯示”OK !“。解:連接如下圖所示。測試程序段如下: OK DB OK!,$ WRONG DB Wrong!,$ MOV AX, 6100H MOV ES, AX MOV DI, 0 MOV CX, 1000H MOV AL, 55H REP STOSB MOV DI, 0 MOV CX, 1000H REPZ SCASB JZ DISP_OK LEA DX, WRONG MOV AH, 9 INT 21H HLT DISP_OK: LEA DX, OK MOV AH, 9 INT 21H HLT 5.9 甚什么是字擴展?什么是位擴展
42、?用戶自己購買內存條進行內存擴充,是在進行何種存儲器擴展? 解: (1)當存儲芯片的容量小于所需內存容量時,需要用多個芯片構成滿足容量要求的存儲器,這就是字擴展。(2)當存儲芯片每個單元的字長小于所需內存單元字長時,需要用多個芯片構成滿足字長要求的存儲模塊,這就是位擴展。(3)用戶在市場上購買內存條進行內存擴充,所做的是字擴展的工作。5.10 74LS138譯碼器的接線圖如教材第245頁的圖5-47所示,試判斷其輸出端Y0#、Y3#、Y5#和Y7所決定的內存地址范圍。解:因為是部分地址譯碼(A17不參加譯碼),故每個譯碼輸出對應2個地址范圍: Y0:00000H 01FFFH 和 20000H
43、 21FFFH Y3:06000H 07FFFH 和 26000H 27FFFH Y5:0A000H 0BFFFH 和 2A000H 2BFFFH Y7:0E000H 0FFFFH 和 2E000H 2FFFFH 5.11 某8088系統用2764 ROM芯片和6264 SRAM芯片構成16KB的內存。其中,ROM的地址范圍為0FE000H0FFFFFH,RAM的地址范圍為0F0000H0F1FFFH。試利用74LS138譯碼,畫出存儲器與CPU的連接圖,并標出總線信號名稱。解:連接如下圖所示。 5.12 敘述EPROM的編程過程,并說明EPROM和EEPROM的不同點。(不要求) 解: (1
44、)對EPROM芯片的編程過程詳見教材第215217頁。(2)EPROM與EEPROM的不同之處為: 。EPROM用紫外線擦除,EEPROM用電擦除。EPROM是整片擦除,EEPROM可以整片擦除,也可以逐個字節地擦除。5.13 試說明FLASH EEPROM芯片的特點及28F040的編程過程。(不要求) 解: (1)特點是:它結合了RAM和ROM的優點,讀寫速度接近于RAM,斷電后信息又不會丟失。(2)28F040的編程過程詳見教材第222223頁。5.14 什么是Cache?它能夠極大地提高計算機的處理能力是基于什么原理? 解: (1)Cache 是位于CPU與主存之間的高速小容量存儲器。(
45、2)它能夠極大地提高計算機的處理能力,是基于程序和數據訪問的局部性原理。5.15 若主存DRAM的的存取周期為70ns,Cache的存取周期為5ns,有它們構成的存儲器的平均存取周期是多少? 解:平均存取周期約為 70×0.1ns + 5×0.9ns =11.5ns。第6章輸入輸出和中斷技術 6.1 I/O接口的主要功能有哪些? 有哪兩種編址方式?在8088/8086系統中采用哪一種編址方式? 解: I/O接口主要需具有以下幾種功能: (1)I/O地址譯碼與設備選擇。保證任一時刻僅有一個外設與CPU進行數據傳送。(2)信息的輸入輸出,并對外設隨時進行監測、控制和管理。必要時
46、,還可以通過I/O接口向CPU發出中斷請求。(3)命令、數據和狀態的緩沖與鎖存。以緩解CPU與外設之間工作速度的差異,保證信息交換的同步。(4)信號電平與類型的轉換。I/O接口還要實現信息格式轉換、電平轉換、碼制轉換、傳送管理以及聯絡控制等功能。 I/O端口的編址方式通常有兩種:一是與內存單元統一編址,二是獨立編址。8088/8086系統采用I/O端口獨立編址方式。6.2 試比較4種基本輸入輸出方法的特點。(不要求) 解:在微型計算機系統中,主機與外設之間的數據傳送有4種基本的輸入輸出方式: 無條件傳送方式、查詢工作方式、中斷工作方式、直接存儲器存取(DMA)方式。它們各自具有以下特點: (1
47、)無條件傳送方式適合與簡單的、慢速的、隨時處于“準備好”接收或發送數據的外部設備,數據交換與指令的執行同步,控制方式簡單。(2)查詢工作方式針對并不隨時“準備好”、且滿足一定狀態才能實現數據的輸入/輸出的簡單外部設備,其控制方式也比較簡單,當CPU的效率比較低。(3)中斷工作方式是由外部設備作為主動的一方,在需要時向CPU提出工作請求,CPU在滿足響應條件時響應該請求并執行相應的中斷處理程序。這種工作方式使CPU的效率提高,但控制方式相對較復雜。(4)DMA方式適合于高速外設,是4種基本輸入/輸出方式中速度最高的一種。6.3 主機與外部設備進行數據傳送時,采用哪一種傳送方式,CPU的效率最高?
48、(不要求) 解:使用DMA傳送方式CPU的效率最高。這是由DMA的工作性質所決定的。6.4 利用三態門芯片74LS244作為輸入接口,接口地址為40FBH,試畫出其與8088系統總線的連接圖。解:16位地址信號通過譯碼電路與74LS244芯片連接。其連接如下圖所示。6.5 某輸入接口的地址為0E54H,輸出接口的地址為01FBH,分別利用74LS244和74LS273作為輸入和輸出接口。試編寫程序,使當輸入接口的bit1、bit4和bit7位同時為1時,CPU將內存中DATA為首址的20個單元的數據從輸出接口輸出;若不滿足上述條件則等待。解:首先判斷由輸入接口讀入數據的狀態,若滿足條件,則通過
49、輸出接口輸出一個單元的數據;之后再判斷狀態是否滿足,直到20個單元的數據都從輸出接口輸出。 LEA SI,DATA ;取數據偏移地址 MOV CL,20 ;數據長度送CL AGAIN: MOV DX,0E54H WAITT: IN AL,DX ;讀入狀態值 AND AL,92H ;屏蔽掉不相關位,僅保留bit1、bit4和bit7位狀態 CMP AL,92H ;判斷bit1、bit4和bit7位是否全為1 JNZ WAITT ;不滿足bit1、bit4和bit7位同時為1則等待 MOV DX,01FBH MOV AL,SI OUT DX,AL ;滿足條件則輸出一個單元數據 INC SI ;修改
50、地址指針 LOOP AGAIN ;若20個單元數據未傳送完則循環6.6 8088/8086系統如何確定硬件中斷服務程序的入口地址? 解:8088/8086系統的硬件中斷包括非屏蔽和可屏蔽兩種中斷請求。每個中斷源都有一個與之相對應的中斷類型碼n。系統規定所有中斷服務子程序的首地址都必須放在中斷向量表中,其在表中的存放地址n×4,(向量表的段基地址為0000H)。即子程序的入口地址為(0000H:n×4)開始的4個單元中,低位字(2個字節)存放入口地址的偏移量,高位字存放入口地址的段基地址。6.7 中斷向量表的作用是什么?如何設置中斷向量表? 解:中斷向量表用于存放中斷服務子程
51、序的入口地址,位于內存的最低1K字節(即內存中0000H003FFH區域),共有256個表項。設置中斷向量表就是將中斷服務程序首地址的偏移量和段基址放入中斷向量表中。 如:將中斷服務子程序CLOCK的入口地址置入中斷向量表的程序如下: MOV AX,0000H MOV DS,AX ;置中斷向量表的段基地址 MOV SI,<中斷類型碼×4> ;置存放子程序入口地址的偏移地址 MOV AX,OFFSET CLOCK MOV SI,AX ;將子程序入口地址的偏移地址送入中斷向量表 MOV AX, SEG CLOCK MOV SI+2,AX ;將子程序入口地址的段基址送入中斷向量
52、表6.8 INTR中斷和NMI中斷有什么區別? 解:INTR中斷為可屏蔽中斷,中斷請求信號高電平有效。CPU能否響應該請求要看中斷允許標志位IF的狀態,只有當IF1時,CPU才可能響應中斷。 NMI中斷為非屏蔽中斷,請求信號為上升沿有效,對它的響應不受IF標志位的約束,CPU只要當前指令執行結束就可以響應NMI請求。6.9 在中斷服務程序的入口處,為什么常常要使用開中斷指令? 解:中斷服務程序分為兩種,一種是在進入服務子程序后不允許被中斷,另一種則可以被中斷。在入口處使用開中斷指令表示該中斷服務程序是允許被中斷的服務程序,即在進入服務子程序后允許CPU響應比它級別高的中斷請求。6.10 試說明
53、8088CPU可屏蔽中斷的響應過程。解:可屏蔽中斷的響應過程主要分為5個步驟,即: (1)中斷請求。外設在需要時向CPU的INTR端發出一個高電平有效的中斷請求信號。(2)中斷判優。若IF1,則識別中斷源并找出優先級最高的中斷源先予以響應,在其處理完后,再響應級別較低的中斷源的請求。(3)中斷響應。中斷優先級確定后,發出中斷的中斷源中優先級別最高的中斷請求就被送到CPU。(4)中斷處理。(5)中斷返回。中斷返回需執行中斷返回指令IRET,其操作正好是CPU硬件在中斷響應時自動保護斷點的逆過程。即CPU會自動地將堆棧內保存的斷點信息彈出到IP、CS和FLAG中,保證被中斷的程序從斷點處繼續往下執
54、行。6.11 CPU滿足什么條件能夠響應可屏蔽中斷? 解: (1)CPU要處于開中斷狀態,即IF1,才能響應可屏蔽中斷。(2)當前指令結束。(3)當前沒有發生復位(RESET)、保持(HOLD)和非屏蔽中斷請求(NMI)。(4)若當前執行的指令是開中斷指令(STI)和中斷返回指令(IRET),則在執行完該指令后再執行一條指令,CPU才能響應INTR請求。(5)對前綴指令,如LOCK、REP等,CPU會把它們和它們后面的指令看作一個整體,直到這個整體指令執行完,方可響應INTR請求。6.14 單片8259A能夠管理多少級可屏蔽中斷?若用3片級聯能管理多少級可屏蔽中斷?(不要求) 解:因為8259
55、A有8位可屏蔽中斷請求輸入端,故單片8259A能夠管理8級可屏蔽中斷。若用3片級聯,即1片用作主控芯片,兩片作為從屬芯片,每一片從屬芯片可管理8級,則3片級聯共可管理22級可屏蔽中斷。6.16 具備何種條件能夠作輸入接口?何種條件能夠作輸出接口? 解:對輸入接口要求具有對數據的控制能力,對輸出接口要求具有對數據的鎖存能力。 6.17 已知(SP)0100H,(SS)3500H,(CS)9000H,(IP)0200H,(00020H)7FH,(00021H)1AH,(00022H)07H,(00023H)6CH,在地址為90200H開始的連續兩個單元中存放一條兩字節指令INT 8。試指出在執行該指令并進入相應的中斷例程時,SP、SS、IP、CS寄存器的內容以及SP所指向的字單元的內容是什么? 解:CPU在響應中斷請求時首先要進行斷點保護,即要依次將FLAGS和INT下一條指令的CS、IP寄存器內容壓入堆棧,亦即棧頂指針減6,而SS的內容不變。INT 8 指令是一條兩字節指令,故其下一條指令的IP0200H20202H。中斷服務子程序的入口地址則存放在中斷向量表(8×4)所指向的連續4個單元中。所以,在執行中斷指令并進入響應的中斷例程時,以上各寄存器的內容分別為: SP0100H600FAH SS3500H IP8×41A7FH CS(8×4)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025汽車銷售公司銷售合同范例
- 2025標準室內設計合同
- 2025 年租賃合同范本:房屋租賃合同
- 2025年合約經理聘請合同調整
- 2025簽訂房屋買賣合同常見的注意事項
- 2025違反合同賠償規定解析
- 2025委托加工食品合同書范本
- 2025科技公司勞動合同范本
- 2025租房合同無效維修條款的應對策略
- 2025辦公空間租賃合同范本
- 環保材料使用管理規定
- 化學反應釜操作技能考核試卷
- 年產20萬噸碳酸鉀蒸發車間設計
- 招標代理服務服務方案
- JT-T-1230-2018機動車發動機冷卻液無機陰離子測定法離子色譜法
- JT-T-1051-2016城市軌道交通運營突發事件應急預案編制規范
- 被執行人生活費申請書范文
- 起重機的維護保養要求與月度、年度檢查記錄表
- 江蘇省無錫江陰市四校2023-2024學年高一下學期期中聯考試卷
- 2024年鄭州鐵路職業技術學院單招職業技能測試題庫及答案解析
- 家政服務平臺的綠色發展與可持續發展研究
評論
0/150
提交評論