計算機(jī)原理與接口技術(shù)課后習(xí)題答案_第1頁
計算機(jī)原理與接口技術(shù)課后習(xí)題答案_第2頁
計算機(jī)原理與接口技術(shù)課后習(xí)題答案_第3頁
計算機(jī)原理與接口技術(shù)課后習(xí)題答案_第4頁
計算機(jī)原理與接口技術(shù)課后習(xí)題答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 1 章 基礎(chǔ)知識1.1 計算機(jī)中常用的計數(shù)制有哪些?解:二進(jìn)制、八進(jìn)制、十進(jìn)制(BCD、十六進(jìn)制。1.2 請說明機(jī)器數(shù)和真值的區(qū)別。解:把符號數(shù)值化的數(shù)碼稱為機(jī)器數(shù)或機(jī)器碼,原來的數(shù)值叫做機(jī)器數(shù)的真值。1.3 完成下列數(shù)制的轉(zhuǎn)換。解:(1) 166, A6H ( 2) 0.75 ( 3) 11111101.01B, FD.4H(4) 5B.AH, (10010001.011000100101)BCD1.4 8 位和 16位二進(jìn)制數(shù)的原碼、補(bǔ)碼和反碼可表示的數(shù)的范圍分別是多少?解:原碼(-127 127 )、(-32767 32767 )補(bǔ)碼 (-128 127 )、(-32768 3276

2、7 )反碼( -127 127 )、(-32767 32767 )1.5 寫出下列真值對應(yīng)的原碼和補(bǔ)碼的形式。( 1) X= -1110011B( 2) X= -71D ( 3) X= 1001001B解:(1)原碼:11110011 補(bǔ)碼: 10001101( 2)原碼:11000111 補(bǔ)碼:10111001( 3)原碼:01001001 補(bǔ)碼:010010011.6 寫出符號數(shù)10110101B的反碼和補(bǔ)碼。解:11001010, 110010111.7 已知X 和 Y 的真值,求X Y 的補(bǔ)碼( 1) X=-1110111B Y= 1011010B ( 2) X=56D Y= -21D

3、解:(1) 11100011( 2) 001000111.8 已知 X= -1101001B, Y= -1010110B,用補(bǔ)碼求 X-Y 的值。解: X-Y 補(bǔ) =11101101X-Y=-0010011B1.9 若給字符4 和 9 的 ASCII 碼加奇校驗,應(yīng)是多少?若加偶校驗?解:奇校驗:4:(00110100B)34H,9:(10111001B) B9H偶校驗:4:(10110100B)B4H,9:( 00111001B) 39H1.10 若與門的輸入端A、 B、 C 的狀態(tài)分別為1、 0、 1,則該與門的輸出端狀態(tài)為?若將這3 個信號連接到或門,那么或門的輸出又是什么狀態(tài)?解:1.

4、11 要使與非門輸出“0”,則與非門輸入端各位的狀態(tài)應(yīng)該是什么?如果使與非門輸出“1”,其輸入端各位的狀態(tài)又應(yīng)該是什么?解:全 1;至少有一個01.12 如果74LS138譯碼器的C B A三個輸入端的狀態(tài)為011,此時該譯碼器的8個輸出端中哪一個會輸出“0”?解: #Y31.13 圖 1-16 中, Y1=? Y2=? Y3=? 138 譯碼器哪一個輸出端會輸出低電平?解: Y1=0; Y2=1 ;Y3=1 ; Y6第 2 章 微處理器和總線2.2 說明8086的EU和BIU的主要功能。在執(zhí)行指令期間,BIU能直接訪問存儲器嗎?解:執(zhí)行單元EU負(fù)責(zé)執(zhí)行指令。EU在工作時不斷地從指令隊列取出指

5、令代碼,對 其譯碼后產(chǎn)生完成指令所需要的控制信息。數(shù)據(jù)在ALU中進(jìn)行運算,運算結(jié)果的特征保留在標(biāo)志寄存器FLAGS??偩€接口單元BIU負(fù)責(zé)CPUf存儲器、I/O接口之 間的信息傳送。BIU取出的指令被送入指令隊列供 EU執(zhí)行,BIU取出的數(shù)據(jù)被送入 相關(guān)寄存器中以便做進(jìn)一步的處理。在執(zhí)行指令期間,BIU能直接訪問存儲器.因為EUffi BIU可以并行工作,EU需要的指令可以從指令隊列中獲得, 這時 BIU 預(yù)先從存儲器中取出并放入指令隊列的。在EU執(zhí)行指令的同時,BIU可以訪問存儲器取下一條指令或指令執(zhí)行時需要的數(shù)據(jù)。2.3 8088CPU 工作在最小模式下:(1)當(dāng)CPU©問存儲器

6、時,要利用哪些信號?(2)當(dāng)CPM彳T I/O操作時,要利用哪些信號?(3)當(dāng)HOLEW效并得到響應(yīng)時,CPU的哪些信號置高阻?解:(1)要利用信號線包括#WR #RD IO/#M、ALE以及AD0AD7 A8A19( 2)同(1)。(3)所有三態(tài)輸出的地址信號、數(shù)據(jù)信號和控制信號均置為高阻態(tài)。2.4 總線周期中,什么情況下要插入 TW等待周期?插入TW用期的個數(shù),取決于什么因素?解:在每個總線周期的T3的開始處若READYW氐電平,則CPUft T3后插入一個等 待周期TW在TW勺開始時刻,CPUS要才查READYS態(tài),若仍為低電平,則再插 入一個TW。此過程一直進(jìn)行到某個 TW開始時,RE

7、ADYB經(jīng)變?yōu)楦唠娖?,這時下一 個時鐘周期才轉(zhuǎn)入T4??梢钥闯觯迦隩W周期的個數(shù)取決于READ克平維持的時 間。2.5 若8088工作在單CPUT式下,在表2-5中填入不同操作時各控制信號的狀 態(tài)。解:結(jié)果如下所示。2.6 在8086/8088 CPU中,標(biāo)志寄存器包含哪些標(biāo)志位?各位為 0 (為1)分別表示什么含義?解:(略),見書第49 頁。2.7 8086/8088 CPU 中,有哪些通用寄存器和專用寄存器?說明它們的作用。解:通用寄存器包含以下8 個寄存器:AX BX CX和DX寄存器一般用于存放參與運算的數(shù)據(jù)或運算的結(jié)果。除此之外:AX主要存放算術(shù)邏輯運算中的操作數(shù),以及存放I/O

8、操作的數(shù)據(jù)。BX存放訪問內(nèi)存時的基地址。CX在循環(huán)和用操作指令中用作計數(shù)器。DX在寄存器間接尋址的I/O指令中存放I/O地址。在做雙字長乘除法運算時,DX 與AX合起來存放一個雙字長數(shù)。SP:存放棧頂偏移地址。BP:存放訪問內(nèi)存時的基地址。SP和BP也可以存放數(shù)據(jù),但它們的默認(rèn)段寄存器都是SSSI :常在變址尋址方式中作為源地址指針。DI:常在變址尋址方式中作為目標(biāo)地址指針。專用寄存器包括4 個段寄存器和兩個控制寄存器:CS:代碼段寄存器,用于存放代碼段的段基地址。DS:數(shù)據(jù)段寄存器,用于存放數(shù)據(jù)段的段基地址。SS:堆棧段寄存器,用于存放堆棧段的段基地址。ES:附加段寄存器,用于存放附加段的段

9、基地址。IP:指令指針寄存器,用于存放下一條要執(zhí)行指令的偏移地址。FLAGS標(biāo)志寄存器,用于存放運算結(jié)果的特征。2.8 8086/8088 系統(tǒng)中,存儲器為什么要分段?一個段最大為多少個字節(jié)?最小為多少個字節(jié)?解:分段的主要目的是便于存儲器的管理,使得可以用16 位寄存器來尋址20位的內(nèi)存空間。一個段最大為 64KB最小為16B。2.9 在8086/8088 CPU中,物理地址和邏輯地址是指什么?已知邏輯地址為1F00: 38A0H如何計算出其對應(yīng)的物理地址?解:物理地址時CPU#取存儲器所用的地址。邏輯地址是段和偏移地址形式的地址,即匯編語言程序中使用的存儲器地址。若已知邏輯地址為1F00:

10、 38A0H則對應(yīng)的物理地址=1F00H x 1638A0H=228A0 H2.10 若CS=8000H則當(dāng)前代碼段可尋址的存儲空間的范圍是多少?解(CS二8000H時,當(dāng)前代碼段可尋址的存儲空間范圍為80000H8FFFFH第 3 章 8088/8086 指令系統(tǒng)3.1 什么叫尋址方式? 8086/8088CPUft有哪幾種尋址方式?解:尋址方式主要是指獲得操作數(shù)所在地址的方法. 8086/8088CPU 具有:立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、寄存器相對尋址、基址一變址尋址、基址一變址相對尋址以及隱含尋址等8 種尋址方式。3.2 設(shè)( DS)=6000H,( ES)=2000

11、H,( SS)=1500H,( SI) =00A0H,( BX)=0800H, (BP)=1200H,字符常數(shù)VAR為0050H. 請分別指出下列各條指令源操作數(shù)的尋址方式,并計算除立即尋址外的其他尋址方式下源操作數(shù)的物理地址是多少?(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, 20HBX解:(1)寄存器尋址。因源操作數(shù)是寄存器,故寄存器BX就是操作數(shù)的地址.(2) 立即尋址。操作數(shù)80H存放

12、于代碼段中指令碼 MOW后。(3 )直接尋址。(4)基址一變址一相對尋址操作數(shù)的物理地址=(DS) X 16+(SI) + (BX) + VAR =60000H + 00AoM 0800H+ 0050H= 608F0H(5) 立即尋址(6) 寄存器間接尋址.操作數(shù)的物理地址=(ES) X 16+ (BX)= 20000H 0800H = 20800H(7) 寄存器間接尋址。操作數(shù)的物理地址=(SS) X 16+ (BP)= 15000H1200H= 16200H(8) 寄存器相對尋址操作數(shù)的物理地址=(DS) X 16 + (BX)+20H = 60000H 0800H 20H= 60820H

13、3.3 假設(shè) (DS)= 212AH,(CS)= 0200H,(IP)= 1200H,(BX)= 0500H, 位移量 DATA=40,H 217A0H =2300H, 217E0H=0400H, 217E2H =9000H 試確定下列轉(zhuǎn)移指令的轉(zhuǎn)移地址.(1) JMP 2300H(2) JMP WORD PTRBX(3) JMP DWORD PTRBX DATA解:轉(zhuǎn)移指令分為段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移,根據(jù)其尋址方式的不同,又有段內(nèi)的直接轉(zhuǎn)移和間接轉(zhuǎn)移,以及段間的直接轉(zhuǎn)移和間接轉(zhuǎn)移地址。對直接轉(zhuǎn)移,其轉(zhuǎn)移地址為當(dāng)前指令的偏移地址(即IP 的內(nèi)容)加上位移量或由指令中直接得出;對間接轉(zhuǎn)移,轉(zhuǎn)移地址等

14、于指令中寄存器的內(nèi)容或由寄存器內(nèi)容所指向的存儲單元的內(nèi)容。(1)段內(nèi)直接轉(zhuǎn)移。轉(zhuǎn)移的物理地址二(CS) X 16 2300H=02000H 2300H=04300H(2)段內(nèi)間接轉(zhuǎn)移。轉(zhuǎn)移的物理地址=(CS) X 16 BX=(CS) X 16 217A0H=02000H 2300H=04300H(3) 段間間接轉(zhuǎn)移。轉(zhuǎn)移的物理地址=BX DATA=217E2H X 16 217E0H=90000H 0400H=90400H3.4 試說明指令 MOV BX,5BX的指令LEA BX,5BX的區(qū)別。解:前者是數(shù)據(jù)傳送類指令,表示將數(shù)據(jù)段中以(BX 5) 為偏移地址的16位數(shù)據(jù)送寄存器BX.后者是

15、取偏移地址指令,執(zhí)行的結(jié)果是(BX) = (BX) 5,即操作數(shù)的偏移地址為 (BX) 5 。3.5 設(shè)堆棧指針SP的初值為2300H, (AX)=50ABH (BX)=1234H。執(zhí)行指令PUSH AX后,(SP) = ?,再執(zhí)行指令 PUSH BM POP AX后,(SP)= ? (AX) = ? (BX) =?解:堆棧指針SP總是指向棧頂,每執(zhí)行一次 PUSH旨令SP-2,執(zhí)行一次POP 才旨令SP 2.所以,執(zhí)行PUSH AX旨令后,(SP)=22FEH;再執(zhí)行PUSH BM POP AX 后, (SP)=22FEH, (AX)=(BX)=1234H3.6 指出下列指令的錯誤:(1)

16、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) 指令錯。兩操作數(shù)字長不相等(2) 指令錯。MOV旨令不允許目標(biāo)操作數(shù)為立即數(shù).(3) 指令錯。在間接尋址中不允許兩個間址寄存器同時為變址寄存器。(4) 指令錯。MUV旨令不允許兩個操作數(shù)同時為存儲器操作數(shù)。(5) 指令錯。ADD旨令要求兩操作數(shù)等字長。(6) 指令錯。源操

17、作數(shù)形式錯,寄存器操作數(shù)不加段重設(shè)符。(7) 指令錯。轉(zhuǎn)移地址的字長至少應(yīng)是16 位的。(8) 指令錯。對輸人輸出指令,當(dāng)端口地址超出8 位二進(jìn)制數(shù)的表達(dá)范圍(即尋址的端口超出256 個)時,必須采用間接尋址。(9) 指令正確。(10) 指令錯。MUL旨令不允許操作數(shù)為立即數(shù)。3.7 已知 (AL) =7BH, (BL) =38H, 試問執(zhí)行指令A(yù)DD AL, BL 后 ,AF、 CF、 OF、 PF、SF和ZF的值各為多少?解:AF=1, CF=0, OF=1, PF=0, SF=l, ZF=03.8 試比較無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、調(diào)用指令和中斷指令有什么異同?解:無條件轉(zhuǎn)移指令的操作

18、是無條件地使程序轉(zhuǎn)移到指定的目標(biāo)地址,并從該地址開始執(zhí)行新的程序段,其轉(zhuǎn)移的目標(biāo)地址既可以是在當(dāng)前邏輯段,也可以是在不同的邏輯段;條件轉(zhuǎn)移指令是在滿足一定條件下使程序轉(zhuǎn)移到指定的目標(biāo)地址,其轉(zhuǎn)移范圍很小,在當(dāng)前邏輯段的-128127地址范圍內(nèi)。調(diào)用指令是用于調(diào)用程序中常用到的功能子程序,是在程序設(shè)計中就設(shè)計好的。根據(jù)所調(diào)用過程人口地址的位置可將調(diào)用指令分為段內(nèi)調(diào)用(入口地址在當(dāng)前邏輯段內(nèi))和段間調(diào)用。在執(zhí)行調(diào)用指令后,CPUS保護(hù)斷點。對段內(nèi)調(diào)用是將其下一條指令的偏移地址壓人堆棧,對段間調(diào)用則要保護(hù)其下一條指令的偏移地址和段基地址,然后將子程序人口地址賦給 IP (或CS和IP).中斷指令是因

19、一些突發(fā)事件而使 CPUW時中止它正在運行的程序,轉(zhuǎn)去執(zhí)行一組 專門的中斷服務(wù)程序,并在執(zhí)行完后返回原被中止處繼續(xù)執(zhí)行原程序。它是隨機(jī)的。在響應(yīng)中斷后CPU¥僅要保護(hù)斷點(即INT指令下一條指令的段地址和偏移地 址),還要將標(biāo)志寄存器FLAGSS入堆棧保存。3.9 試判斷下列程序執(zhí)行后,BX中的內(nèi)容.MOV CL, 3MOV BX,0B7HROL BX,1ROR BX,CL解:該程序段是首先將BX內(nèi)容不帶進(jìn)位循環(huán)左移1位,再循環(huán)右移3位。即 相當(dāng)于將原BX內(nèi)容不帶進(jìn)位循環(huán)右移2位,故結(jié)果為:(BX)=0C02DH 3.10 按下列要求寫出相應(yīng)的指令或程序段。(1)寫出兩條使AX內(nèi)容為

20、0的指令。(2)使BL寄存器中的高4位和低4位互換。(3)屏蔽CX寄存器的bll,b7 和b3位。(4)測試DX中的b0和b8位是否為1。解:(1)MOV AX,0 XOR AX,AX ;AX寄存器自身相異或,可使其內(nèi)容滿 0(2)MOV CL, 4ROL BL,CL;將BL內(nèi)容循環(huán)左移4位,可實現(xiàn)其高4位和低4位的互 換(3)AND CX,0F777H ;將CX寄存器中需屏蔽的位“與” 0。也可用 “或”指 令實現(xiàn) (4)AND DX,0101H ;將需側(cè)試的位“與”1,其余“與”0屏蔽掉CMP DX,0101 H ;與 0101H 比較JZ ONE;若相等則表示b0和b8位同時為11.11

21、 分別指出以下兩個程序段的功能:(1)MOV CX,l0LEA SI,FIRSTLEA DI, SECONDSTDREP MOVSB解:(2)CLDLEA DI, 1200H MOV CX,0FOOH XOR AX,AXREP STOSW(1) 該段程序的功能是:將數(shù)據(jù)段中FIRST為最高地址的10個字節(jié)數(shù)據(jù)按減地 址方向傳送到附加段SECOND最高地址的向前10個單元中。(2) 將附加段中偏移地址為1200H單元開始的0FOO6字單元清001.12 執(zhí)行以下兩條指令后,標(biāo)志寄存器 FLAGS勺六個狀態(tài)位各為什么狀態(tài)?MOV AX,84A0HADD AX,9460H解:執(zhí)行ADD旨令后,6個狀

22、態(tài)標(biāo)志位的狀態(tài)分別為:在兩個16位數(shù)進(jìn)行加法運算時,對 CR ZF、SF和OF會產(chǎn)生影響,但對PF和 AF 標(biāo)志位 , 只有其低8 位的運算影響它們的狀態(tài)。各標(biāo)志位的狀態(tài)分別為:AF=0, PF=1, CF=1, ZF=0, SF=0, OF=1。1.13 將 46 和 -38 分別乘以2, 可應(yīng)用什么指令來完成?如果除以2呢?解:因為對二進(jìn)制數(shù),每左移一位相當(dāng)于乘以2, 右移一位相當(dāng)于除以2。所以,將46和-38分別乘以2,可分別用邏輯左移指令(SHL)和算術(shù)左移指令(SAL) 完成。SHL指令針對無符號數(shù),SAL指令針對有符號數(shù)。當(dāng)然,也可以分別用無符號數(shù)乘法指令 MUU有符號數(shù)乘法指令I(lǐng)

23、MUL完成。如果是除以2,則進(jìn)行相反操作,即用邏輯右移指令 SHRE無符號數(shù)除法指令 DIV實現(xiàn)46除以2的運算,用算術(shù)右移指令SARg有符號數(shù)除法指令I(lǐng)DIV實現(xiàn)- 38 除以 2 的運算。1.14 已知 AX=8060H,DX=03F&H端口 PORT的地址是 48H,內(nèi)容為 40H; PORT酌 地址是84H,內(nèi)容為85Ho請指出下列指令執(zhí)行后的結(jié)果。(1)OUT DX, AL(2) IN AL,PORT1(3) OUT DX,AX(4) IN AX,48H(5) OUT PORT2,AX解:(1) 將60H輸出到地址為03F8H的端口中。(2) 從PORT饋入一個字節(jié)數(shù)據(jù),執(zhí)行

24、結(jié)果:(AL)二40H。(3) 將AX=8060H輸出到地址為03F8H的端口中。(4) 由48H端口讀人16位二進(jìn)制數(shù)。(5) 將8060H輸出到地址為84H的端口中。第 4 章 匯編語言程序設(shè)計4.1 請分別用DB、DW、DDft指令寫出在DATAF始的連續(xù)8個單元中依次存放數(shù) 據(jù) 11H、22H、33H、44H、55H、66H、77H、88H 的數(shù)據(jù)定義語句.解:DB,DW,DD»指令分別表示定義的數(shù)據(jù)為字節(jié)類型、字類型及雙字型.其定義形式為 :DATA DB 11H,22H,33H,44H,55H,66H,77H,88HDATA DW 2211H,4433H,6655H,88

25、77HDATA DD 44332211H,88776655H4.2 若程序的數(shù)據(jù)段定義如下, 寫出各指令語句獨立執(zhí)行后的結(jié)果:DSEG SEGMENTDATA1 DB 10H,20H,30HDATA2 DW 10 DUP(?)STRING DB 123DSEG ENDS(1) MOV AL,DATA1(2) MOV BX,OFFSET DATA2(3) LEA SI,STRINGADD DI,SI解:(1)取變量DATA1的值.指令執(zhí)行后,(AL)=10H.(2)變量DATA2勺偏移地址.指令執(zhí)行后,(BX)=0003H.(3)先取變量STRING勺偏移地址送寄存器SI,之后送SI的內(nèi)容與DI

26、的內(nèi)容相加并將結(jié)果送DI. 指令執(zhí)行后,(SI)=0017H;(DI)=(DI) 0017H.4.3 試編寫求兩個無符號雙字長數(shù)之和的程序.兩數(shù)分別在MEM和MEM2I元中, 和放在SUMI元.解:DSEG SEGMENTMEM1 DW 1122H,3344HMEM2 DW 5566H,7788HSUM DW 2 DUP(?)DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXLEA BX,MEM1LEA SI,MEM2LEA DI,SUMMOV CL,2CLCAGAIN: MOV AX,BXADC AX,

27、SIMOV DI,AXADD BX,2ADD SI,2ADD DI,2LOOP AGAINHLTCSEG ENDSEND START4.4 試編寫程序,測試AL寄存器的第4位(bit4)是否為0?解:測試寄存器AL中某一位是否為0,可使用TEST旨令、AND旨令、移位指令等幾 種方法實現(xiàn)。如:TEST AL, 10HJZ NEXTNEXT 或者:MOV CL, 4SHL AL , CLJNC NEXT .NEXT:4.5 試編寫程序,將BUFFERS勺一個8位二進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼,并按位數(shù)高 低順序存放在ANSWER始的內(nèi)存單元中。解:DSEG SEGMENTBUFFER DB?ANSW

28、ER DB 3 DU(?) PDSEG ENDSCSEG SEGMENTASSUME C: SCSEG, DS: DSEGSTART: MOV AX, DSEG MOV D,S AXMOV C,X 3;最多不超過3 為十進(jìn)制數(shù)(255)LEA DI , ANSWER ; DI 指向結(jié)果存放單元;取要轉(zhuǎn)換的二進(jìn)制數(shù)1010 取余的方法轉(zhuǎn)換 ASCII 碼;保存當(dāng)前的結(jié)果;指向下一個位保存單元;商為0?(轉(zhuǎn)換結(jié)束?);若結(jié)束,退出;否則循環(huán)繼續(xù);返回 DOSXOR AX, AXMOV A,L BUFFERMOV B,L 0AHAGAIN: DIV BLADD AH, 30HMOV DI, AHIN

29、C DIAND AL, ALJZ STOMOV A,H 0LOOP AGAINSTO: MOV AX, 4C00HINT 21HCSEG ENDSEND START4.6 假設(shè)數(shù)據(jù)項定義如下:DATA1 DB HELLO! GOOD MORNI! NGDATA2 DB 20 DUP(?)用串操作指令編寫程序段,使其分別完成以下功能:(1)從左到右將DATA1中的字符串傳送到DATA2。(2)傳送完后,比較DATA儕口 DATA2的內(nèi)容是否相同(3)把DATA1中的第3和第4個字節(jié)裝入AX(4)將AX的內(nèi)容存入DATA2 5開始的字節(jié)單元中。解:( 1)MOV A,X SEG DATA1MOV

30、D,S AXMOV A,X SEG DATA2MOV E,S AXLEA SI, DATA1LEA DI, DATA2MOV C,X 20CLDREP MOVSB( 2)LEA SI, DATA1LEA DI, DATA2MOV C,X 20CLDREPE CMPSB( 3)LEA SI, DATA1ADD SI, 2LODSW( 4) LEA DI, DATA2ADD DI , 5STOSW4.7 執(zhí)行下列指令后,AX寄存器的內(nèi)容是多少?TABLE DW 1,0 20, 30, 40, 50ENTRY DW 3MOV B,X OFFSET TABLEADD BX, ENTRYMOV A,X

31、BX解:(AX) =1E00H4.8 編寫程序段,將STRING1中的最后20個字符移到STRING (順序不變)。 解:首先確定STRING仲字符串的長度,因為字符串的定義要求以$'符號結(jié) 尾,可通過檢測$'符確定出字符串的長度,設(shè)用長度為 COUNT則程序如下:LEA SI, STRING1LEA DI, STRING2ADD SI, COUNT-20MOV C,X 20CLDREP MOVSB4.9 假設(shè)一個48位數(shù)存放在DX:AX:BX中,試編寫程序段,將該48位數(shù)乘以2.解:可使用移位指令來實現(xiàn)。首先將 BX內(nèi)容邏輯左移一位,其最高位移入進(jìn)位位CF,之后AX內(nèi)容帶進(jìn)位

32、位循環(huán)左移,使 AX的最高位移入CF,而原CF中的內(nèi)容 (即BX的最高位)移入AX的最低位,最后再將DX內(nèi)容帶進(jìn)位位循環(huán)左移一位,從而實現(xiàn)AX的最低位移入DX的最低位。SHL BX, 1RCL AX, 1RCL DX, 14.10 試編寫程序,比較AX, BX, CX中帶符號數(shù)的大小,并將最大的數(shù)放在 AX 中。解:比較帶符號數(shù)的大小可使用符號數(shù)比較指令JG等。CMP AX, BXJG NEXT1XCHG A,X BXNEXT1: CMP AX, CX JG STO MOV A,X CXSTO : HLT4.11 若接口 03F8H的第1位(b1)和第3位(B3)同時為1,表示接口 03FBH

33、W準(zhǔn) 備好的8位數(shù)據(jù),當(dāng)CPU等數(shù)據(jù)取走后,b1和b3就不再同時為1 了。僅當(dāng)又有數(shù)據(jù)準(zhǔn)備好時才再同時為1。試編寫程序,從上述接口讀入 200字節(jié)的數(shù)據(jù),并順序放在 DATAF始的地址中。解:即當(dāng)從輸入接口 03F8H讀入的數(shù)據(jù)滿足x x x x 1x1xB時可以從接口 03FBH 輸入數(shù)據(jù)。LEA SI, DATAMOV C,X 200NEXT: MOV DX, 03F8HWAIT: IN AL , DXAND AL, 0AH;判斷 b1 和 b3 位是否同時為1CMP AL, 0AHJNZ WAIT; b1和b3位同時為1則讀數(shù)據(jù),否則等待MOV D,X 03FBHIN AL, DXMOV

34、 SI, ALINC SILOOP NEXTHLT4.12 畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值。(1) DATA1 DB BYTE,12,12H,2 DUP(0,?,3)(2) DATA2 DW 4 DU(P0,1,2),?,-5,256H解:(1)存儲空間分配情況如圖(a)所示。(2)存儲空間分配情況如圖(b)所示。第 5 章 存儲器系統(tǒng)1.2 內(nèi)部存儲器主要分為哪兩類? 它們的主要區(qū)別是什么?解:(1)分為 ROMff口 RAM。( 2)它們之間的主要區(qū)別是:。ROMfc正常工作時只能讀出,不能寫入。RAMM可讀可寫。斷電后,ROW的內(nèi)容不會丟失,RAMfr的內(nèi)容會丟失。1.3

35、 為什么動態(tài)RAMS要定時刷新?解:DRAW存儲元以電容來存儲信息,由于存在漏電現(xiàn)象,電容中存儲的電荷會逐漸泄漏,從而使信息丟失或出現(xiàn)錯誤。因此需要對這些電容定時進(jìn)行“刷新”。1.4 CPW址內(nèi)存的能力最基本的因素取決于 o解:地址總線的寬度。1.6 試?yán)萌刂纷g碼將6264芯片接到8088系統(tǒng)總線上,使其所占地址范圍為32000HH 33FFFH解:將地址范圍展開成二進(jìn)制形式如下圖所示。0011 0010 0000 0000 00000011 0011 1111 1111 11116264芯片的容量為8Kx 8bit ,需要13根地址線A0A12。而剩下的高7位 地址應(yīng)參加該芯片的地址譯碼

36、。電路如圖所示:1.7 內(nèi)存地址從20000I-H8BFFF哄有多少字節(jié)?解:共有 8BFFF420000- 1=6C000H個字節(jié)?;?432KB1.8 若采用 6264芯片構(gòu)成上述的內(nèi)存空間,需要多少片6264芯片?解:每個6264芯片的容量位8KB,故需432/8 =54片。1.9 設(shè)某微型機(jī)的內(nèi)存RAME的容量為128KB若用2164芯片構(gòu)成這樣的存儲器,需多少2164 芯片?至少需多少根地址線?其中多少根用于片內(nèi)尋址?多少根用于片選譯碼?解:(1)每個2164芯片的容量為64Kx 1bit ,共需128/64X8= 16片。( 2) 128K哈量需要地址線17根。( 3) 16 根用

37、于片內(nèi)尋址。( 4) 1 根用于片選譯碼。注意,用于片內(nèi)尋址的16 根地址線要通過二選一多路器連到2164 芯片,因為2164芯片是DRAM高位地址與低位地址是分時傳送的。4.10 現(xiàn)有兩片6116芯片,所占地址范圍為61000H-61FFF-試將它們連接到8088系統(tǒng)中。并編寫測試程序,向所有單元輸入一個數(shù)據(jù),然后再讀出與之比較,若出錯則顯示“ Wrong ”,全部正確則顯示" OK “。解:連接如下圖所示。測試程序段如下:OKDB OK! ,$WRONG DB Wrong! ,$MOV AX, 6100HMOV ES, AXMOV DI, 0MOV CX, 1000HMOV AL

38、, 55HREP STOSBMOV DI, 0MOV CX, 1000HREPZ SCASBJZDISP_OKLEA DX, WRONGMOV AH, 9INT21HHLTDISP_OK:LEA DX, OKMOV AH, 9INT21HHLT4.11 什么是字?jǐn)U展?什么是位擴(kuò)展?用戶自己購買內(nèi)存條進(jìn)行內(nèi)存擴(kuò)充,是在進(jìn)行何種存儲器擴(kuò)展?解:( 1)當(dāng)存儲芯片的容量小于所需內(nèi)存容量時,需要用多個芯片構(gòu)成滿足容量要求的存儲器,這就是字?jǐn)U展。( 2)當(dāng)存儲芯片每個單元的字長小于所需內(nèi)存單元字長時,需要用多個芯片構(gòu)成滿足字長要求的存儲模塊,這就是位擴(kuò)展。( 3)用戶在市場上購買內(nèi)存條進(jìn)行內(nèi)存擴(kuò)充,所做

39、的是字?jǐn)U展的工作。4.12 74LS138 譯碼器的接線圖如圖5-44 所示,試判斷其輸出端Y0#、 Y3#、 Y5#和Y7#所決定的內(nèi)存地址范圍。解:因為是部分地址譯碼(A17不參加譯碼),故每個譯碼輸出對應(yīng) 2個地址范圍:Y0# : 00000H 01FFFH 和 20000H 21FFFHY3# : 06000H 07FFFH 和 26000H 27FFFHY5# : 0A000H 0BFFFH 和 2A000H 2BFFFHY7# : 0E000H 0FFFFH 和 2E000H 2FFFFH4.13 某8088系統(tǒng)用2764 ROME片和6264 SRAME片才成16KB的內(nèi)存。其中

40、, ROM勺地址范圍為0FE000+ 0FFFFFH RAM勺地址范圍為0F0000H0F1FFFH試禾 用74LS138譯碼,畫出存儲器與CPU勺連接圖,并標(biāo)出總線信號名稱。解:連接如下圖所示。4.14 敘述EPROMJ編程過程,并說明EPROIMP EEPROMl不同點。(不要求)解:(1)對EPROM片的編程過程詳見教材第 215217頁。(2) EPROMf EEPROM不同之處為:。EPROMI紫外線擦除,EEPROMI電擦除。EPROM:整片才S除,EEPROM以整片擦除,也可以逐個字節(jié)地擦除。5.15 試說明FLASH EEPROM片的特點及28F040的編程過程。(不要求) 解

41、:(1)特點是:它結(jié)合了 RAMF口 ROM勺優(yōu)點,讀寫速度接近于 RAM斷電后信息又 不會丟失。(2) 28F040的編程過程詳見教材第 222223頁。5.16 什么是Cache?它能夠極大地提高計算機(jī)的處理能力是基于什么原理?解:(1) Cache是位于CPUf主存之間的高速小容量存儲器。( 2)它能夠極大地提高計算機(jī)的處理能力,是基于程序和數(shù)據(jù)訪問的局部性原理。5.17 若主存DRAM勺的存取周期為70ns, Cache的存取周期為5ns,有它們構(gòu)成的存儲器的平均存取周期是多少?解:平均存取周期約為 70X 0.1ns 5 x 0.9ns =11.5ns 。第 6 章 輸入輸出和中斷技

42、術(shù)6.2 I/O 接口的主要功能有哪些? 有哪兩種編址方式?在8088/8086 系統(tǒng)中采用哪一種編址方式?解 : I/O 接口主要需具有以下幾種功能:(1) I/O地址譯碼與設(shè)備選擇。保證任一時刻僅有一個外設(shè)與CPU!行數(shù)據(jù)傳送。( 2)信息的輸入輸出,并對外設(shè)隨時進(jìn)行監(jiān)測、控制和管理。必要時,還可以通過I/O接口向CPU發(fā)出中斷請求。(3)命令、數(shù)據(jù)和狀態(tài)的緩沖與鎖存。以緩解CPUt外設(shè)之間工作速度的差異,保證信息交換的同步。( 4)信號電平與類型的轉(zhuǎn)換。I/O 接口還要實現(xiàn)信息格式轉(zhuǎn)換、電平轉(zhuǎn)換、碼制轉(zhuǎn)換、傳送管理以及聯(lián)絡(luò)控制等功能。I/O 端口的編址方式通常有兩種:一是與內(nèi)存單元統(tǒng)一編

43、址,二是獨立編址。 8088/8086 系統(tǒng)采用I/O 端口獨立編址方式。6.3 試比較 4 種基本輸入輸出方法的特點。(不要求)解:在微型計算機(jī)系統(tǒng)中,主機(jī)與外設(shè)之間的數(shù)據(jù)傳送有4 種基本的輸入輸出方式:無條件傳送方式、查詢工作方式、中斷工作方式、直接存儲器存取(DMA方式。它們各自具有以下特點:( 1)無條件傳送方式適合與簡單的、慢速的、隨時處于“準(zhǔn)備好”接收或發(fā)送數(shù)據(jù)的外部設(shè)備,數(shù)據(jù)交換與指令的執(zhí)行同步,控制方式簡單。( 2)查詢工作方式針對并不隨時“準(zhǔn)備好”、且滿足一定狀態(tài)才能實現(xiàn)數(shù)據(jù)的輸入/輸出的簡單外部設(shè)備,其控制方式也比較簡單,當(dāng)CPU的效率比較低。(3)中斷工作方式是由外部設(shè)備

44、作為主動的一方,在需要時向CPUS出工作請求,CPUE滿足響應(yīng)條件時響應(yīng)該請求并執(zhí)行相應(yīng)的中斷處理程序。這種工作方式使CPU勺效率提高,但控制方式相對較復(fù)雜。(4) DMAT式適合于高速外設(shè),是4種基本輸入/輸出方式中速度最高的一種。6.4 利用三態(tài)門芯片74LS244作為輸入接口,接口地址為40FBH試畫出其與8088 系統(tǒng)總線的連接圖。解:16位地址信號通過譯碼電路與 74LS244芯片連接。具連接如下圖所示。6.5 某輸入接口的地址為0E54H輸出接口的地址為01FBH分別利用74LS244和74LS273作為輸入和輸出接口。試編寫程序,使當(dāng)輸入接口的 bit1、bit4和bit7位同時

45、為1時,CPU等內(nèi)存中DATA%首址的20個單元的數(shù)據(jù)從輸出接口輸出;若不滿足上述條件則等待。(不要求 )解:首先判斷由輸入接口讀入數(shù)據(jù)的狀態(tài),若滿足條件,則通過輸出接口輸出一個單元的數(shù)據(jù);之后再判斷狀態(tài)是否滿足,直到20 個單元的數(shù)據(jù)都從輸出接口輸LEA SI,DATA ; 取數(shù)據(jù)偏移地址AGAIN: MOV DX,0E54HWAITT: IN AL,DXAND AL,92HCMP AL,92H JNZ WAITTMOV CL,20 ; 數(shù)據(jù)長度送CL; 讀入狀態(tài)值屏蔽掉不相關(guān)位,僅保留bit1 、 bit4 和 bit7 位狀態(tài)判斷 bit1 、 bit4 和 bit7 位是否全為1不滿足

46、 bit1 、 bit4 和 bit7 位同時為1 則等待MOV DX,01FBHMOV AL,SIOUT DX,AL ; 滿足條件則輸出一個單元數(shù)據(jù)INC SI; 修改地址指針LOOP AGAIN ; 若 20 個單元數(shù)據(jù)未傳送完則循環(huán)6.8 8088/8086 系統(tǒng)如何確定硬件中斷服務(wù)程序的入口地址? 解: 8088/8086 系統(tǒng)的硬件中斷包括非屏蔽和可屏蔽兩種中斷請求。每個中斷源都有一個與之相對應(yīng)的中斷類型碼 n。系統(tǒng)規(guī)定所有中斷服務(wù)子程序的首地址都必須放在中斷向量表中,其在表中的存放地址= nX4,(向量表的段基地址為0000HH。即子程序的入口地址為(0000H nX4)開始的4個

47、單元中,低位字(2 個字節(jié))存放入口地址的偏移量,高位字存放入口地址的段基地址。6.9 中斷向量表的作用是什么?如何設(shè)置中斷向量表?解:中斷向量表用于存放中斷服務(wù)子程序的入口地址,位于內(nèi)存的最低1K 字節(jié)(即內(nèi)存中0000HH 003FFH區(qū)域),共有256個表項。設(shè)置中斷向量表就是將中斷服務(wù)程序首地址的偏移量和段基址放入中斷向量表中。如:將中斷服務(wù)子程序 CLOCK勺入口地址置入中斷向量表的程序如下:MOV AX,0000HMOV DS,AX ; 置中斷向量表的段基地址MOV SI,<中斷類型碼X 4> ;置存放子程序入口地址的偏移地址MOV AX,OFFSET CLOCKMOV

48、 SI,AX ; 將子程序入口地址的偏移地址送入中斷向量表MOV AX, SEG CLOCKMOV SI 2,AX; 將子程序入口地址的段基址送入中斷向量表6.10 INTR中斷和NMI中斷有什么區(qū)別?解:INTR中斷為可屏蔽中斷,中斷請求信號高電平有效。CPUfg否響應(yīng)該請求要看中斷允許標(biāo)志位IF的狀態(tài),只有當(dāng)IF = 1時,CPUt可能響應(yīng)中斷。NMI中斷為非屏蔽中斷,請求信號為上升沿有效,對它的響應(yīng)不受IF標(biāo)志位的約束,CPUR要當(dāng)前指令執(zhí)行2束就可以響應(yīng) NMI請求。6.* 在中斷服務(wù)程序的入口處,為什么常常要使用開中斷指令?(不要求)解:中斷服務(wù)程序分為兩種,一種是在進(jìn)入服務(wù)子程序后

49、不允許被中斷,另一種則可以被中斷。在入口處使用開中斷指令表示該中斷服務(wù)程序是允許被中斷的服務(wù)程序,即在進(jìn)入服務(wù)子程序后允許 CPU向應(yīng)比它級別高的中斷請求。6.11 試說明8088CPLM屏蔽中斷的響應(yīng)過程。解:可屏蔽中斷的響應(yīng)過程主要分為5 個步驟,即:(1)中斷請求。外設(shè)在需要時向 CPlffi INTR端發(fā)出一個高電平有效的中斷請求信號。(2)中斷判優(yōu)。若IF = 1,則識別中斷源并找出優(yōu)先級最高的中斷源先予以響應(yīng),在其處理完后,再響應(yīng)級別較低的中斷源的請求。( 3)中斷響應(yīng)。中斷優(yōu)先級確定后,發(fā)出中斷的中斷源中優(yōu)先級別最高的中斷請求就被送到CPU。( 4)中斷處理。(5)中斷返回。中斷

50、返回需執(zhí)行中斷返回指令 IRET,其操作正好是CPUM件在中 斷響應(yīng)時自動保護(hù)斷點的逆過程。即 CPU自動地將堆棧內(nèi)保存的斷點信息彈出到 IP、CS和FLAG,保證被中斷的程序從斷點處繼續(xù)往下執(zhí)行。6.12 CPU 滿足什么條件能夠響應(yīng)可屏蔽中斷?解:(1) CPLK處于開中斷狀態(tài),即IF=1,才能響應(yīng)可屏蔽中斷。( 2)當(dāng)前指令結(jié)束。(3)當(dāng)前沒有發(fā)生復(fù)位(RESET、保持(HOLD和非屏蔽中斷請求( NMI)。(4)若當(dāng)前執(zhí)行的指令是開中斷指令(STI)和中斷返回指令(IRED ,則 在執(zhí)行完該指令后再執(zhí)行一條指令,CPUt能響應(yīng)INTR請求。(5)對前綴指令,如LOCK RE對,CP必把

51、它們和它們后面的指令看作 一個整體,直到這個整體指令執(zhí)行完,方可響應(yīng) INTR請求。6.14單片8259A能夠管理多少級可屏蔽中斷?若用 3片級聯(lián)能管理多少級可屏蔽中斷?(不要求)解:因為8259A有8位可屏蔽中斷請求輸入端,故單片 8259A能夠管理8級可屏蔽中斷。若用3 片級聯(lián),即1 片用作主控芯片,兩片作為從屬芯片,每一片從屬芯片可管理 8 級,則 3 片級聯(lián)共可管理22 級可屏蔽中斷。6.16 具備何種條件能夠作輸入接口?何種條件能夠作輸出接口?解:對輸入接口要求具有對數(shù)據(jù)的控制能力,對輸出接口要求具有對數(shù)據(jù)的鎖存能力。6.17 已知(SP) =0100H, (SS) =3500H,

52、(CS)= 9000H, (IP) = 0200H, (00020H)=7FH, (00021H)= 1AH ( 00022H)= 07H, (00023H)= 6CH 在地址為90200H開始的連續(xù)兩個單元中存放一條兩字節(jié)指令 INT 8。試指出在執(zhí)行該 指令并進(jìn)入相應(yīng)的中斷例程時,SR SS IP、CS寄存器的內(nèi)容以及SP所指向的字 單元的內(nèi)容是什么?解:CPUS響應(yīng)中斷請求時首先要進(jìn)彳T斷點保護(hù),即要依次將 FLAGS口 INT下一條 指令的CS IP寄存器內(nèi)容壓入堆棧,亦即棧頂指針減 6,而SS的內(nèi)容不變。INT 8指令是一條兩字節(jié)指令,故其下一條指令的 IP = 0200H+ 2=0

53、202H中斷服務(wù)子程序的入口地址則存放在中斷向量表(8X4)所指向的連續(xù)4個 單元中。所以,在執(zhí)行中斷指令并進(jìn)入響應(yīng)的中斷例程時,以上各寄存器的內(nèi)容分 別為:SP= 0100H- 6 = 00FAHSS= 3500HIP=8 X4 = 1A7FHCS= (8 X 4) + 2 = 6C07HSP =0200H+ 2=0202H第 7 章 常用數(shù)字接口電路7.1 一般來講,接口芯片的讀寫信號應(yīng)與系統(tǒng)的哪些信號相連?解:一般來講,接口芯片的讀寫信號應(yīng)與系統(tǒng)總線信號中的#IOR (接口讀)或#IOW(接口寫)信號相連。7.2 試說明8253芯片的六種工作方式。其時鐘信號 CLK和門控信號GATE別起

54、什么作用?(不要求)解:可編程定時/計數(shù)器 8253具有六種不同的工作方式,其中:方式0:軟件啟動、不自動重復(fù)計數(shù)。在寫入控制字后OU同變低電平,計數(shù)結(jié)束后OU琢輸出高電平,可用來產(chǎn)生中斷請求信號,故也稱為計數(shù)結(jié)束產(chǎn)生中斷的工 作方式。方式 1:硬件啟動、不自動重復(fù)計數(shù)。所謂硬件啟動是在寫入計數(shù)初值后并不開始計數(shù),而是要等門控信號 GAT時現(xiàn)由低到高的跳變后,在下一個 CLK脈沖的下降 沿才開始計數(shù),此時OU礎(chǔ)立刻變?yōu)榈碗娖?。計?shù)結(jié)束后,OU琢輸出高電平,得 到一個寬度為計數(shù)初值N個CLK脈沖周期寬的負(fù)脈沖。方式2:既可軟件啟動,也可以硬件啟動??勺詣又貜?fù)計數(shù)。在寫入控制字后,OU嘲變?yōu)楦唠娖?。計?shù)到最后一個時鐘脈沖時 OU琢變 為低電平,再經(jīng)過一個CLK周期,計數(shù)值減到零,OU儀恢復(fù)為高電平。之后再自 動轉(zhuǎn)入計數(shù)初值,并重新開始新的一輪計數(shù)。方式 2下OU琢?xí)B續(xù)輸出寬度為 Tclk的負(fù)脈沖,其周期為NX Tclk,所以方式2也稱為分頻器,分頻系數(shù)為計數(shù)初 值 N。方式3:也是一種分頻器,也有兩種啟動方式,自動重復(fù)計數(shù)。當(dāng)計數(shù)初值N為偶數(shù)時,連續(xù)輸出對稱方波(即 N/2個CLK脈沖低電平,N/2個CLKB沖高電平), 頻率為(1/N) XFclk。若N為奇數(shù),則輸出波形不對稱,其中(N+ 1) /2個時 鐘周期高電平,( N 1)2 個時鐘周期低電平。方式4和方式5都是在計數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論