微機(jī)原理與接口技術(shù)周荷琴課后習(xí)題答案_第1頁
微機(jī)原理與接口技術(shù)周荷琴課后習(xí)題答案_第2頁
微機(jī)原理與接口技術(shù)周荷琴課后習(xí)題答案_第3頁
微機(jī)原理與接口技術(shù)周荷琴課后習(xí)題答案_第4頁
微機(jī)原理與接口技術(shù)周荷琴課后習(xí)題答案_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.微機(jī)原理與接口技術(shù)習(xí)題參考答案第一章(p20)1、參考答案:馮諾伊曼計(jì)算機(jī)的設(shè)計(jì)思想(EDVAC方案:存儲程序通用電子計(jì)算機(jī)方案):計(jì)算機(jī)分為計(jì)算器、控制器、存儲器、輸入和輸出裝置五個(gè)部分;計(jì)算機(jī)內(nèi)采用二進(jìn)制;將程序存儲在計(jì)算機(jī)內(nèi),簡稱“程序存儲”。其中第三點(diǎn)是馮諾依曼計(jì)算機(jī)設(shè)計(jì)的精華,所以人們又把馮諾依曼原理叫做程序存儲原理,即程序由指令組成并和數(shù)據(jù)一起存放在存儲器中,機(jī)器則按程序指定的邏輯順序把指令從存儲器中讀出來并逐條執(zhí)行,從而自動完成程序描述的處理工作。馮諾伊曼計(jì)算機(jī)主要以運(yùn)算器和控制器為中心,結(jié)構(gòu)框圖如下圖所示。2、參考答案:微處理器就是中央處理器CPU,是計(jì)算機(jī)的核心,單獨(dú)的CP

2、U不能構(gòu)成計(jì)算機(jī)系統(tǒng);微型計(jì)算機(jī)由微處理器、主存儲器、I/O接口(注意:不是I/O設(shè)備)組成;而微型計(jì)算機(jī)系統(tǒng)除了包括微型計(jì)算機(jī)外,還有系統(tǒng)軟件(即操作系統(tǒng))、應(yīng)用軟件、外存儲器和I/O設(shè)備等。微型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)如下圖所示。3、答案略,見p674、答案略,見圖2,或教材圖1-35、答案略,見p12136、參考答案:由于8086微處理器的地址總線的寬度為20位,所以它可尋址2201M字節(jié)的存儲空間;而PentiumII微處理器的地址總線的寬度為36位,所以它可尋址236=64G字節(jié)的存儲空間。7、參考答案:PCI(Peripheral Component Interconnect:外圍設(shè)備互聯(lián))

3、,是Intel公司1992年發(fā)布486微處理器時(shí)推出的32/64位標(biāo)準(zhǔn)總線,數(shù)據(jù)傳輸速率位132MB/s,適用于Pentium微型計(jì)算機(jī)。PCI總線是同步且獨(dú)立于微處理器的具有即插即用(PNP:Plug and play,所謂即插即用,是指當(dāng)板卡插入系統(tǒng)時(shí),系統(tǒng)會自動對板卡所需資源進(jìn)行分配,如基地址、中斷號等,并自動尋找相應(yīng)的驅(qū)動程序)的特性.PCI總線允許任何微處理器通過橋接口連接到PCI總線上。USB(Universal Serial Bus:通用串行總線),是1994年由Compaq,IBM,Microsoft等多家公司聯(lián)合提出的。USB有兩種規(guī)格:V1.1和V2.0,USB 1.1傳輸

4、速度為12M/秒,而USB 2.0提高至360到480M/秒。USB 2.0是向下兼容USB 1.1,這意味著將一個(gè)USB 2.0的設(shè)備插到USB 1.1口中,只能按USB 1.1的速度運(yùn)行。 USB連接方式十分靈活,支持熱插拔,不需要單獨(dú)的供電系統(tǒng)??梢酝ㄟ^一條4線串行線纜訪問USB設(shè)備,用于連接鍵盤、鼠標(biāo)、投影儀、數(shù)碼相機(jī)等,現(xiàn)在成為每一臺計(jì)算機(jī)都必須配備的標(biāo)準(zhǔn)接口。8、參考答案:DB-Define byte 定義一個(gè)字節(jié)類型的變量,并為該變量分配內(nèi)存DWDefine word 定義一個(gè)字類型的變量,并為該變量分配內(nèi)存DD.Define double word 定義一個(gè)雙字類型的變量,并為

5、該變量分配內(nèi)存9、參考答案:(1)1101.01b=13.25d(或13.25)(2)111001.0011b=57.1875(3)101011.0101b=43.3125(4)111.0001b=7.0625如何轉(zhuǎn)換?例如:101011.0101b125+123+12+1+12-2+12-4= 32+8+2+1+0.25+0.0625=43.312510、參考答案:(1)A3.3H=1016+3+316-1=163.1875(2)129.CH=1162+216+9+1216-1=297.75(3)AC.DCH=1016+12+1316-1+1216-2=172.259375(4)FAB.3H

6、=15162+1016+11+316-1=4011.187511、參考答案:(1)23=10111B=27Q=17H(2)107=1101011B=153Q=6BH(3)1238=10011010110B=2326Q=4D6H(4)92=1011100B=134Q=5CH12、參考答案:即把下面的數(shù)用8位補(bǔ)碼表示(1)+32=00100000B(2)-12=11110100B,即求-12的補(bǔ)碼(3)+100=01100100B(4)-92=10100100B,即求-92的補(bǔ)碼13、參考答案:壓縮BCD碼就是用4位二進(jìn)制表示一個(gè)09之間的十進(jìn)制數(shù)非壓縮的BCD碼就是用8位二進(jìn)制表示一個(gè)09之間的

7、十進(jìn)制數(shù),8位二進(jìn)制的最高4位可以位任何數(shù),例如0000,09的ASCII碼實(shí)際上就是09的非壓縮BCD碼的表示。十進(jìn)制數(shù)壓縮BCD碼非壓縮BCD碼1020001 0000 001000000001 00000000 00000010440100 010000000100 000001003010011 0000 000100000011 00000000 0000000110000001 0000 0000 000000000001 00000000 00000000 0000000014、參考答案:如果二進(jìn)制最高位為0,則該數(shù)為正數(shù),反之,如果最高位為1,則該數(shù)為負(fù)數(shù),對其做求補(bǔ)運(yùn)算就得到

8、其相反數(shù)。(1)10000000B=-128(2)00110011B=+51(3)10010010B=-78(4)10001001B=-11915、參考答案:一個(gè)單精度浮點(diǎn)數(shù)占4個(gè)字節(jié)(雙字),即32位二進(jìn)制,其中符號位占1位,指數(shù)部分占8位,尾數(shù)部分占23位。十進(jìn)制數(shù)表示成單精度浮點(diǎn)數(shù)的方法如下:填充符號位,如果是正數(shù)填0,如果是負(fù)數(shù)填1將數(shù)表示成二進(jìn)制形式,并進(jìn)行規(guī)格化對于單精度浮點(diǎn)數(shù),指數(shù)加上127(7FH);對于雙精度浮點(diǎn)數(shù),指數(shù)要加上1023 (3FFH),并填充指數(shù)位填充尾數(shù)位(1)+1.5 由于是正數(shù),所以符號位為0;寫成二進(jìn)制并規(guī)格化得到1.120,由于2的指數(shù)是0,所以指數(shù)部

9、分以0+127=01111111填充;由知,尾數(shù)為1,所以尾數(shù)部分以10000000000000000000000(1后面跟22個(gè)0)填充,綜上,得到+1.5的單精度浮點(diǎn)數(shù)表示為:+1.50 01111111 10000000000000000000000B寫成十六進(jìn)制數(shù)為:+1.5=3F C0 00 00H(2)-10.625=C12A0000H(3)+100.25=42C88000H(4)-1200.0=C4960000H16、參考答案:(1)0 10000000 11000000000000000000000B=3.5(2)1 01111111 000000000000000000000

10、00B=-1.0(3)0 10000000 10010000000000000000000B=3.125第二章(p55p56)1、答案略,見p22242、答案略,見p24273、答案略,見p334、參考答案(其他可以參照本章相關(guān)內(nèi)容): CPU:又稱微處理器,是計(jì)算機(jī)系統(tǒng)的核心,一般由邏輯運(yùn)算單元、控制單元和一些寄存器組成。這些寄存器用于CPU在處理數(shù)據(jù)過程中數(shù)據(jù)的暫時(shí)保存。它主要完成從存儲器中取指令,指令譯碼;算術(shù)邏輯運(yùn)算;在處理器和存儲器或I/O接口之間傳送數(shù)據(jù);程序的流向控制等。 存儲器:是計(jì)算機(jī)系統(tǒng)的記憶部件,主要用來存儲程序和數(shù)據(jù)。存儲器一般分為內(nèi)部存儲器和外部存儲器兩大類。內(nèi)部存儲

11、器(內(nèi)存)存放當(dāng)前正在使用或經(jīng)常使用的程序和數(shù)據(jù),CPU可以直接訪問;外存存放“海量”數(shù)據(jù),相對來說不經(jīng)常使用,CPU使用時(shí)要先調(diào)入內(nèi)存。內(nèi)部存儲器又可以分為隨機(jī)存取存儲器(RAM)和只讀存儲器(ROM)。計(jì)算機(jī)系統(tǒng)存儲器的三層結(jié)構(gòu):按存儲容量由低到高(或按存取速度由高到低)分為高速緩沖存儲器(CACHE)、主存、輔存三層。 堆棧(Stack):堆棧是在存儲器中開辟一個(gè)區(qū)域,用來存放需要暫時(shí)保存的數(shù)據(jù);當(dāng)前棧頂單元一般采用SP指向,棧底設(shè)在存儲器的高地址區(qū),堆棧地址由高到低增長;堆棧的工作方式是“后進(jìn)先出”,用入棧指令PUSH 和出棧指令POP可將數(shù)據(jù)壓入堆?;驈亩褩V袕棾鰯?shù)據(jù),棧頂指針SP的

12、變化由CPU自動管理,入棧操作SP減小,出棧操作SP增大;堆棧的操作以字為單位。 機(jī)器語言(Machine Language):計(jì)算機(jī)唯一能接受和執(zhí)行的語言。機(jī)器語言由二進(jìn)制碼組成,每一串二進(jìn)制碼叫做一條指令,一條指令規(guī)定了計(jì)算機(jī)執(zhí)行的一個(gè)動作,一臺計(jì)算機(jī)所能懂得的指令的全體,叫做這個(gè)計(jì)算機(jī)的指令系統(tǒng),不同型號的計(jì)算機(jī)的指令系統(tǒng)不同。使用機(jī)器語言編寫程序是一種相當(dāng)煩瑣的工作,既難于記憶也難于操作,編寫出來的程序全是由0和1的數(shù)字組成,直觀性差、難以閱讀。不僅難學(xué)、難記、難檢查、又缺乏通用性,給計(jì)算機(jī)的推廣使用帶來很大的障礙。 匯編語言(Assembly Language):是一種符號語言,它和

13、機(jī)器語言幾乎一一對應(yīng),在書寫時(shí)使用字符串組成的助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替地址碼。使用匯編語言編寫的程序,機(jī)器不能直接識別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序,如微軟的宏匯編程序MASM.EXE。匯編程序把匯編語言翻譯成機(jī)器語言的過程稱為匯編。匯編語言比機(jī)器語言易于讀寫、調(diào)試和修改,同時(shí)具有機(jī)器語言全部優(yōu)點(diǎn)。但在編寫復(fù)雜程序時(shí),相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。 指令(Instruction):指令是能被計(jì)算機(jī)識別并執(zhí)行

14、的二進(jìn)制代碼,它規(guī)定了計(jì)算機(jī)能完成的某一操作。一條指令通常由兩個(gè)部分組成:操作碼+操作數(shù)。操作碼:指明該指令要完成的操作的類型或性質(zhì),如取數(shù)、做加法或輸出數(shù)據(jù)等。操作數(shù):指明操作對象的內(nèi)容或所在的存儲單元地址(地址碼),操作數(shù)在大多數(shù)情況下是地址碼,地址碼可以有03個(gè)。9、參考答案:題號段起始地址段結(jié)束地址a)1000H10000H1FFFFHb)1234H12340H2233FHc)2300H23000H32FFFHd)E000HE0000HEFFFFHe)AB00HAB000HBAFFFH注意:段起始地址和段結(jié)束地址均為20位的物理地址;段起始的偏移量為0000H,所以段起始地址為段基地址

15、16偏移地址;由于每個(gè)段的最大容量為64K字節(jié),段結(jié)束的偏移量為FFFFH,所以段結(jié)束地址為段基地址16偏移地址段基地址16FFFFH10、參考答案:a) CS:IP=1000H:2000H 下一條指令的存儲器地址為(CS)16+(IP)=12000Hb) CS:IP=2000H:1000H 下一條指令的存儲器地址為(CS)16+(IP)=21000Hc) CS:IP=1A00H:B000H 下一條指令的存儲器地址為(CS)16+(IP)=25000Hd) CS:IP=3456H:AB09H 下一條指令的存儲器地址為(CS)16+(IP)=3F069 H11、參考答案:a) DS=1000H,

16、DI=2000H 存儲單元地址為:(DS)16+(DI)=12000Hb) SS=2300H,BP=3200H 存儲單元地址為:(SS)16+(BP)=26200Hc) DS=A000H,BX=1000H 存儲單元地址為:(DS)16+(BX)=A1000Hd) SS=2900H,SP=3A00H 存儲單元地址為:(SS)16+(SP)=2CA00H12、參考答案:堆棧段在存儲器中的物理地址(即堆棧段的起始地址)為:(SS)16+0000H=35000H入棧10個(gè)字節(jié)后,SP=0800H-10=07F6H再出棧6個(gè)字節(jié),SP=07F6H+6=07FCH13、參考答案:示意圖如左圖所示,如果要讀

17、取這兩個(gè)字,則需要對存儲器進(jìn)行三次操作。由于字2A8CH存放在偶地址開始的單元,所以只進(jìn)行一次存儲器操作就可以讀取該字;由于字1EE5H存放在奇地址開始的單元,所以需要進(jìn)行兩次存儲器操作才可以讀取該字。14、參考答案:段段起始地址段結(jié)束地址DS10E40H20E3FHES10F40H20F3FHSS21F00H31EFFHCS31FF0H41FEFH可見,DS和ES有部分的重疊,重疊區(qū)域大小為:20E3FH-10F40H+1=FF00H字節(jié);ES和SS之間有空隙,空隙的大小為:21F00H-20F3FH+1=0FC2H字節(jié);SS和CS之間有空隙,空隙的大小為:31FF0H-31EFFH+1=0

18、0F2H字節(jié)OF SF ZF CF 均為017、參考答案:IF標(biāo)志位控制INTR引腳20、答案略,見p4921、答案略第三章(p121p124)1、參考答案:題號源操作數(shù)尋址方式目的操作數(shù)尋址方式(1)立即尋址寄存器尋址(2)立即尋址寄存器尋址(3)寄存器間接尋址寄存器尋址(4)寄存器尋址寄存器相對尋址(5)寄存器尋址寄存器相對尋址(6)立即尋址基址變址尋址(7)基址變址尋址寄存器尋址(8)寄存器尋址相對基址變址尋址(9)直接尋址*寄存器尋址(10)寄存器尋址寄存器尋址*對于IN指令,如果是長格式,源操作數(shù)的數(shù)字不是立即數(shù),而是端口地址,所以源操作數(shù)的尋址方式是直接尋址;如果是短格式,即端口地

19、址存放在DX寄存器中,則源操作數(shù)的尋址方式為寄存器間接尋址,如:IN AX,DX對于OUT指令,如果是長格式,目的操作數(shù)的數(shù)字不是立即數(shù),而是端口地址,所以目的操作數(shù)的尋址方式是直接尋址,如OUT 20H,AL;如果是短格式,即端口地址存放在DX寄存器中,則目的操作數(shù)的尋址方式為寄存器間接尋址,如:OUT DX,AX2、參考答案:題號源操作數(shù)尋址方式源操作數(shù)有效地址源操作數(shù)物理地址指令執(zhí)行后AX中的內(nèi)容(1)立即尋址-0200H(2)直接尋址0200H10200H2A10H(3)寄存器尋址-0200H(4)寄存器相對尋址0203H10203H5946H(5)基址變址尋址0202H10202H4

20、63CH(6)相對基址變址尋址0204H10204H6B59H注:10200H10205H單元存儲狀況如左圖所示3、參考答案:題號源操作數(shù)尋址方式源操作數(shù)有效地址源操作數(shù)物理地址(1)直接尋址0100H(DS)16EA=10100H(2)直接尋址0030H(DS)16EA=10030H(3)寄存器間接尋址0100H(DS)16EA=10100H(4)寄存器間接尋址0100H(ES)16EA=20100H(5)寄存器間接尋址00A0H(DS)16EA=100A0H(6)寄存器相對尋址0110H(DS)16EA=10110H(7)寄存器間接尋址0200H(SS)16EA=35200H(8)相對基址

21、變址尋址02D0H(SS)16EA=352D0H(9)相對基址變址尋址0154H(DS)16EA=10154H(10)基址變址尋址0224H(SS)16EA=35224H4、答案略5、參考答案:(1)該數(shù)據(jù)段的存儲狀況如下表所示:ABCDE000102030405060708090A0B0C0D0E0F101112131415162410434F4D50555445523412FF0000000000009A450012注:表格的第一行為變量名稱;第三行的每個(gè)小格子代表一個(gè)存儲單元;第二行為存儲單元的偏移地址以十六進(jìn)制表示,從中可以看出各變量在數(shù)據(jù)段中的偏移地址,A的偏移地址為0000H,B的

22、偏移地址為0002H,C的偏移地址為000AH,D的偏移地址為000EH,E的偏移地址為0013H;第三行為存儲單元的具體內(nèi)容,以十六進(jìn)制表示。(2)寫出各條指令執(zhí)行后的結(jié)果指令執(zhí)行后的結(jié)果MOV AL,AAL=24HMOV DX,CDX=1234HXCHG DL,ADL=24H,A變量的第一個(gè)單元的內(nèi)容變?yōu)?4HMOV BX,OFFSET BBX=0002HMOV CX,3BXCX=5550HLEA BX,DBX=000EHLEA SI,ESI=0013HLEA DI,EDI=0013H6、參考答案:題號錯誤原因(1)兩操作數(shù)的類型不一致(2)立即數(shù)不能做目的操作數(shù)(3)立即數(shù)不能直接傳送給

23、段寄存器(4)兩操作數(shù)不能同時(shí)為存儲器操作數(shù)(5)IP寄存器的內(nèi)容不能由用戶更改,而由系統(tǒng)自動修改(6)正確(7)兩基址寄存器不能放在一起使用(8)正確(9)兩變址寄存器不能放在一起使用(10)不能取立即數(shù)的偏移地址,OFFSET操作符使用不當(dāng)(11)存儲單元的偏移地址應(yīng)為字類型,不能放到字節(jié)寄存器中(12)XCHG指令的操作數(shù)不能為立即數(shù)(13)IN指令從端口讀取的數(shù)據(jù)只能放在累加器AL或AX中(14)OUT指令的源操作數(shù)應(yīng)為累加器,目的操作數(shù)應(yīng)為端口地址,且如果端口地址超過0FFH(255),端口地址應(yīng)放在DX寄存器中7、程序片段如下:LEA BX,TABLEMOV AL,57MOV AH

24、,0MOV DL,10DIV DLPUSH AXXLATMOV CH,ALPOP AXMOV AL,AHXLATMOV CL,ALMOV BX,CX8、解答:SP的變化情況指令執(zhí)行后SP內(nèi)容PUSH AXSPSP-200FEHPUSH BXSPSP-200FCHPOP BXSPSP+200FEHPOP AXSPSP+20100H9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1則單獨(dú)執(zhí)行下列各條指令后,各相關(guān)寄存器內(nèi)容是什么?題號指令執(zhí)行后相關(guān)寄存器內(nèi)容(1)AL=0ACH(2)BX=8ACFH(3)AX=EB24H(4)BX=3455H(5)CX=0A9

25、88H(6)BL=57H(7)乘積為雙字存放在DX:AX中:DX=03B8H AX=0AD78H(8)商存放在AL中,余數(shù)存放在AH中:AL=26H AH=64H10、參考程序片段如下:;定義數(shù)據(jù)段DATA SEGMENTARRAY DB 60,65,72,76,77,66,79NEW DB 7 DUP(0)SUM DB 0AVERAGE DB 0DATA ENDS;程序代碼如下MOV CX,7MOV SUM,0MOV SI,0NEXT:MOV AL,ARRAYSIADD SUM,AL;總分存入SUM中ADD AL,5MOV NEWSI,ALINC SILOOP NEXTMOV AL,SUMM

26、OV AH,0MOV CL,7DIV CLMOV AVERAGE,AL;平均分存入AVERAGE中11、參考答案:題號結(jié)果CF(1)AH=04H0(2)BL=36H0(3)AX=0DAF7H0(4)CX=0FFF4H0(5)相關(guān)寄存器內(nèi)容沒有改變0(6)相關(guān)寄存器內(nèi)容沒有改變0(7)DX=0186H0(8)AL=04H0(9)BH=0F0H0(10)AX=4A10H0(11)BX=1E6CH0(12)DX=4186H012、參考答案:(1)程序片段如下:LEA SI,STRINGLEA DI,GET_CHARMOV CX,26CLDREP MOVSB(2)程序片段如下:先定義一個(gè)附加段,用來存

27、放The computerEXTRA SEGMENTS2 DB The computerEXTRA ENDSLEA SI,STRINGLEA DI,S2MOV CX,12CLDREPZ CMPSBJZ NEXT;若比較的兩個(gè)字符串相同,則跳到NEXT執(zhí)行MOV AL,0; 若比較的兩個(gè)字符串不相同SUB CL,12NEG CLMOV BL,CL;比較的次數(shù)存入BL中RETNEXT:MOV AL,1MOV BL,12RET(3)程序片段如下:LEA DI,STRING;被查找的字符串STRING作為目的串MOV AL,&MOV CX,26CLDREPNZ SCASBJNZ EXIT;如果沒有找到

28、,直接退出DEC DI;找到&字符的位置MOV BYTE PTR ES:DI,20H;用空格字符替換EXIT: RET(4)完整的程序如下*:;這里的DATA既作為數(shù)據(jù)段,又作為附加段,即數(shù)據(jù)段和附加段公用一個(gè)段DATA SEGMENTSTRING DB The Personal Computer & TVCOUNT EQU $-STRINGCAPS DB COUNT DUP(0)CHART DB COUNT DUP(0)DATA ENDSCODE SEGMENTASSUME DS:DATA,ES:DATA,CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AX

29、MOV AX,DATAMOV DS,AXMOV ES,AX;把字符串中大寫字母傳送到CAPS開始的單元中LEA SI,STRINGLEA DI,CAPSMOV CX,COUNTCLDAGAIN1:LODSBCMP AL,41HJB NEXT1CMP AL,5AHJA NEXT1STOSBNEXT1:LOOP AGAIN1;把字符串中其余字母傳送到CHART開始的單元中LEA SI,STRINGLEA DI,CHARTMOV CX,COUNTCLDAGAIN2:LODSBCMP AL,41HJB NEXTCMP AL,5AHJBE NEXT2NEXT:STOSBNEXT2:LOOP AGAIN2

30、;將STRING字符串清零LEA DI,STRINGMOV AL,0MOV CX,COUNTCLDREP STOSBRETMAIN ENDPCODE ENDSEND MAIN13、完整的程序如下:CODE SEGMENTASSUME CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXXOR SI,SI;SI中存放DX中1的個(gè)數(shù)XOR DX,DXMOV AX,1234HMOV CX,16AGAIN:ROR AX,1JNC NEXTINC SIPUSH CXDEC CLMOV BX,1SHL BX,CLOR DX,BXPOP CXNEXT:LOOP AGAINR

31、ETMAIN ENDPCODE ENDSEND MAIN程序的運(yùn)行結(jié)果:AX=1234H DX=2C48H SI=0005H,結(jié)果正確14、參考答案:指令跳轉(zhuǎn)類型程序的轉(zhuǎn)向*(1)JMP PROG_N段內(nèi)直接跳轉(zhuǎn)IP=0278H(2)JMP BX段內(nèi)間接跳轉(zhuǎn)IP=(BX)=0300H(3)JMP BX段內(nèi)間接跳轉(zhuǎn)IP=(DS)16(BX)=(20300H)=4800H(4)JMP FAR PROG_F段間直接跳轉(zhuǎn)IP=0ABCH CS=3400H(5)JMP DWORD PTR BX段間間接跳轉(zhuǎn)IP=(20300H)=4800H CS=(20302H)=00FFH*如果是段內(nèi)轉(zhuǎn)移,跳轉(zhuǎn)指令只改

32、變IP寄存器的內(nèi)容,前三條跳轉(zhuǎn)指令是段內(nèi)跳轉(zhuǎn);如果是段間跳轉(zhuǎn),跳轉(zhuǎn)指令同時(shí)改變IP和CS寄存器的內(nèi)容,后兩條跳轉(zhuǎn)指令是段間跳轉(zhuǎn)。15、參考答案:寄存器LOOP NEXTLOOPE NEXTLOOPNE NEXTAX2 3 4 522 3BX4 7 11 1644 7CX3 2 1 033 2DX1 0 0 011 0注意:三個(gè)循環(huán)指令LOOP、LOOPE和LOOPNE終止循環(huán)的條件是不一樣的。16、參考答案:中斷向量表的作用:中斷向量表用于存放256種中斷的中斷服務(wù)程序的入口地址,每種類型中斷的中斷服務(wù)程序的入口地址占用4個(gè)字節(jié),存儲CS和IP,總共需要1024個(gè)字節(jié),即1K字節(jié)。中斷向量表位

33、于內(nèi)存的最低1K字節(jié),地址范圍為:00000H003FFH。類型3的中斷的中斷服務(wù)程序的入口地址存放在:0000CH0000FH這四個(gè)單元。17、參考答案:如下圖所示解釋:由于中斷類型號為2,所以該類型中斷的中斷服務(wù)程序入口地址占據(jù)內(nèi)存最低1K字節(jié)的24,24+1,24+2,24+3四個(gè)單元。前兩個(gè)單元存放中斷服務(wù)程序IP值,即0016H,后兩個(gè)單元存放中斷服務(wù)程序的CS值,即0485H。由于CS和IP值均為一個(gè)字,所以在存放中斷服務(wù)程序入口地址的CS和IP值時(shí),低位字節(jié)存放在低地址區(qū),高位字節(jié)存放在高地址區(qū)。18、參考答案:(1)中斷類型號為16(2)該中斷服務(wù)程序的起始地址是:CS:IP=

34、D169H:240BH解釋:由于中斷向量表中地址為0040H開始存放某類型中斷的中斷服務(wù)程序的入口地址,所以0040H除以4就可以得到該類型中斷的中斷類型號n,即n=16。中斷服務(wù)程序的入口地址的CS值存放在0042H單元里,IP值存放在0040H單元里。19、參考答案:中斷類型號(專用中斷)響應(yīng)中斷的條件0:被0除當(dāng)除數(shù)為0或商超過了寄存器所能表示的范圍,就產(chǎn)生了一個(gè)類型為0的中斷1:單步中斷,由Debug單步調(diào)試引起當(dāng)TF=1,每條指令執(zhí)行后,CPU自動產(chǎn)生類型為1的中斷2:NMI不可屏蔽中斷,用來處理緊急事件,如:電源掉電,CPU必須予以響應(yīng)3:斷點(diǎn)中斷,由Debug設(shè)置斷點(diǎn)引起用deb

35、ug調(diào)試程序時(shí),可用g命令設(shè)置斷點(diǎn),當(dāng)CPU執(zhí)行到斷點(diǎn)時(shí)便產(chǎn)生類型為3的中斷,同時(shí)顯示當(dāng)前各寄存器和有關(guān)存儲器的內(nèi)容及下條要執(zhí)行的指令,供用戶檢查。4:溢出中斷如果當(dāng)前運(yùn)算的結(jié)果產(chǎn)生溢出,則OF=1,下面緊跟溢出中斷指令I(lǐng)NTO,立刻產(chǎn)生一個(gè)類型為4的中斷20、參考答案:MOV CX,N;4個(gè)時(shí)鐘周期NEXT:NOP;N3個(gè)時(shí)鐘周期NOP;N3個(gè)時(shí)鐘周期LOOP NEXT;(N-1)17+15個(gè)時(shí)鐘周期由f=5MHz,t=0.2us,延時(shí)5ms需要個(gè)時(shí)鐘周期所以:4+N3N3(N-1)17+15=25000解得:N=1087第四章(p205p206)1、參考答案(寫出各變量在內(nèi)存中的存儲狀況)

36、A1 DW 23H,5678HA2 DB 3 DUP(?),0AH,0DH,$A3 DD 5 DUP(1234H,567890H)A4 DB 4 DUP(3 DUP(1,2,ABC)變量A1占4個(gè)字節(jié),在內(nèi)存中的存儲狀況(以十六進(jìn)制表示,從左到右地址依次增加,以下同):23 00 78 56變量A2占6個(gè)字節(jié),在內(nèi)存中的存儲狀況:00 00 00 0A 0D 24變量A3占40個(gè)字節(jié),在內(nèi)存中的存儲狀況:34 12 00 00 90 78 56 00 (再重復(fù)4遍)變量A4占60個(gè)字節(jié),在內(nèi)存中的存儲狀況:01 02 41 42 43 01 02 41 42 43 01 02 41 42 43

37、 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43(帶下畫線部分重復(fù)4遍)2、參考答案(寫出各指令執(zhí)行后的結(jié)果)指令結(jié)果MOV AX,00FFH AND 1122H+3344HAX=0066H,先加后與MOV AL,15 GE 1111BAL=0FFHMOV AX,00FFH LE 255+6/5AX=0FFFFH,先加后比較AND AL,50 MOD 4AL=02HOR AX

38、,0F00FH AND 1234 OR 00FFHAX=0FFFFH,先與后或,再把計(jì)算的結(jié)果同AX進(jìn)行或運(yùn)算,最終結(jié)果保存在AX中3、參考答案:L=6,L的值實(shí)際就是BUF變量在內(nèi)存中占有的字節(jié)數(shù)。4、參考答案:PLENGTH=22,PLENGTH的值實(shí)際就是三個(gè)變量PAR、PNAME和COUNT在內(nèi)存中占有的總的字節(jié)數(shù)。5、參考答案:AX=1 BX=20 CX=16、參考答案:AH=00H7、(1)利用中斷調(diào)用產(chǎn)生5秒延時(shí)data segments db 5 second is gone,13,10,$data endscode segmentassume cs:code,ds:datam

39、ain proc farmov ax,datamov ds,axmov ah,2chint 21h;取得當(dāng)前時(shí)間:ch時(shí) cl分 dh秒 dl1/100秒mov bl,dhcontinue:mov ah,2chint 21hsub dh,blcmp dh,5jb continue;判斷兩次取得時(shí)間間隔是否為5秒鐘,如果不是則繼續(xù)讀取時(shí)間lea dx,s;如果達(dá)到5秒,則顯示一條信息mov ah,9int 21hmov ax,4c00hint 21hmain endpcode endsend main(2)利用中斷調(diào)用,在屏幕上顯示19之間的隨機(jī)數(shù)思路:利用DOS系統(tǒng)功能調(diào)用得到當(dāng)前時(shí)間,其中的

40、dl寄存器中存放的是1/100秒,可以用來產(chǎn)生隨機(jī)數(shù)。code segmentassume cs:codemain proc farmov ah,2chint 21hmov al,dl;取得1/100秒,不同時(shí)間運(yùn)行該程序時(shí)得到的這個(gè)數(shù)字也不一樣,具有隨機(jī)性mov ah,0mov bl,9;除以9div bl;相除后的余數(shù)ah的范圍為08inc ah;加1后得到19之間的數(shù)add ah,30h;轉(zhuǎn)換為ASCII碼mov dl,ahmov ah,2int 21h;在屏幕上顯示該數(shù)mov ax,4c00hint 21hmain endpcode endsend main8、(1)二進(jìn)制到壓縮BCD

41、碼的轉(zhuǎn)換。把AX中的二進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼,仍然存放AX寄存器中。例如:如果AX中的二進(jìn)制數(shù)為0010 0110 1001 0100B=2694H,化成十進(jìn)制數(shù)是9876,其壓縮的BCD碼是1001 1000 0111 0110,用十六進(jìn)制表示是9876H。即這種轉(zhuǎn)換實(shí)際就是把2694H轉(zhuǎn)換為9876H。考慮到AX中能夠存放的最大的四位壓縮BCD數(shù)為9999H,所以在轉(zhuǎn)換之前需要判斷AX中的二進(jìn)制數(shù)不能超過9999,即270FH。第五章(p237238)1、靜態(tài)RAM和動態(tài)RAM的區(qū)別靜態(tài)RAM(SRAM)動態(tài)RAM(DRAM)集成度低高容量小大刷新無附加刷新電路速度快較慢應(yīng)用場合高速緩

42、沖存儲器(CACHE)內(nèi)存條2、ROM、PROM、EPROM、EEPROM在功能上各有何特點(diǎn)答案略(見教材p208)3、DRAM的CAS和RAS輸入的用途是什么?答:為了提高DRAM的集成度,減少引腳的數(shù)目,DRAM的地址線分成行地址和列地址兩部分,在對存儲器進(jìn)行訪問時(shí),先由行地址選通信號RAS把行地址送入行地址鎖存器,再由列地址選通信號CAS把列地址送入列地址鎖存器,并由讀寫信號控制數(shù)據(jù)的讀出或?qū)懭搿?、什么CACHE?作用是什么?處于微處理機(jī)中的什么位置?答:CACHE即高速緩沖存儲器,通常由SRAM組成。其作用是:將經(jīng)常訪問的代碼和數(shù)據(jù)保存到由SRAM組成的高速緩沖存儲器中,把不經(jīng)常訪問

43、的數(shù)據(jù)保存到由DRAM組成的主存中,這樣使存儲器系統(tǒng)的價(jià)格降低,同時(shí)又降低了接近零等待的性能,大大的提高了系統(tǒng)的性能。CACHE位于CPU和主存儲器之間。7、用10241位的RAM芯片組成16K8位的存儲器,需要多少芯片?在地址線中有多少位參與片內(nèi)尋址?多少位合成片選信號?(設(shè)地址總線為16位)答:需要168128片RAM芯片,其中每8片為一組,總共有16組;地址線中有10位參與片內(nèi)尋址;由于有16組芯片,余下的6根地址線中至少需要4根合成片選信號,來選中其中的一組芯片。8、現(xiàn)有一存儲器芯片的容量為5124位,若要用它組成4KB的存儲器,需要多少這樣的芯片?每塊芯片需要多少尋址線?整個(gè)存儲系統(tǒng)

44、最少需要多少尋址線?答:需要的芯片的數(shù)目為16片,每兩片為一組,共有8組;每塊芯片需要9根尋址線;由于共有8組芯片,至少需要3根地址線合成片選信號用來選擇8組芯片中的一組;整個(gè)存儲器系統(tǒng)至少需要9312根地址線。9、利用10248位的RAM芯片組成4K8位的存儲器系統(tǒng),用A15A12地址線用線性選擇法產(chǎn)生片選信號,存儲器地址的分配有什么問題?寫出各芯片的地址分配。答:需要的芯片的數(shù)目:4片片內(nèi)尋址需要的地址線的數(shù)目:由于每片RAM芯片內(nèi)部有1024個(gè)存儲單元,所以需要10根地址線用于選中其中某一個(gè)存儲單元,占用地址總線的低10位(A9A0)片間尋址需要的地址線的數(shù)目:由于需要4片存儲器芯片,所

45、以至少需要2根地址線進(jìn)行譯碼用于選擇4片芯片中的一片,這樣占用地址總線的A11和A10。余下的地址總線用線性選擇法產(chǎn)生片選信號,這樣A15A12的電平的不同組合就產(chǎn)生了不同的地址空間,使得存儲器芯片的地址空間產(chǎn)生重疊。如果A15A12的電平組合為:A15=1,其余的均為0,則4片存儲器芯片的地址范圍分別為: A15 A14 A13 A12 A11 A10 A9A01#:1 0 0 0 0 0 0 0 =8000H 1 0 0 0 0 0 1 1 =83FFH2#:1 0 0 0 0 1 0 0 =8400H1 0 0 0 0 1 1 1 =87FFH3#:1 0 0 0 1 0 0 0 =88

46、00H 1 0 0 0 1 0 1 1 =8BFFH4#:1 0 0 0 1 1 0 0 =8C00H1 0 0 0 1 1 1 1 =8FFFH10、當(dāng)從存儲器偶地址單元讀一個(gè)字節(jié)數(shù)據(jù)時(shí),寫出存儲器的控制信號和它們的有效電平(8086工作在最小模式)。答案如下表所示:信號名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平8086讀寫對象為存儲器,而不是I/O接口BHE高電平從偶地址單元讀寫一個(gè)字節(jié)A0低電平RD低電平讀數(shù)據(jù)11、當(dāng)要將一個(gè)字寫入到存儲器奇地址開始的單元中,列出存儲器的控制信號和他們的有效電平(8086工作在最小模式)。答案如下表所示:分兩次寫入:第一次:信號

47、名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平8086讀寫對象為存儲器,而不是I/O接口BHE低電平把這個(gè)字的低位字節(jié)寫入奇地址單元A0高電平WR低電平寫數(shù)據(jù)第二次:信號名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平8086讀寫對象為存儲器,而不是I/O接口BHE高電平把這個(gè)字的高位字節(jié)寫入接下來的偶地址單元A0低電平WR低電平寫數(shù)據(jù)12、設(shè)計(jì)一個(gè)64K8的存儲器系統(tǒng),采用74LS138和EPROM 2764器件,使其尋址空間范圍為:40000H4FFFFH。解題步驟如下:存儲器芯片數(shù)目的確定:由于每片2764芯片為8K8位,要組成64K8的存儲器系

48、統(tǒng),需要8片2764芯片,編號為1#8#;片內(nèi)尋址地址線的選擇:由于每片2764芯片為8K8位,即有8K(2138K)個(gè)存儲單元,所以需要13根地址線(A12A0)分別接到芯片的13個(gè)地址引腳,來選通片內(nèi)某個(gè)存儲單元;片間尋址地址線的分配:A15、A14和A13分別連接到74LS138的C、B、A端,74LS138的8個(gè)輸出分別接到8片2764的CS端;輸入輸出選擇的芯片號A15A14A13000Y01#001Y12#010Y23#011Y34#100Y45#101Y56#110Y67#111Y78#余下的地址線的連接:A19A16和M/IO信號通過邏輯電路接到74LS138的三個(gè)控制端G1、

49、G2A和G2B,具體的邏輯電路的設(shè)計(jì)與題目給定的尋址空間范圍有關(guān),如果題目沒有給定尋址空間范圍,邏輯電路由讀者自行設(shè)計(jì);根據(jù)尋址空間范圍設(shè)計(jì)控制端的邏輯電路:把最低地址40000H表示成二進(jìn)制形式為:0100 0000 0000 0000 0000,可知20位地址總線高4位(A19A16)的電平組合為A19=0,A18=1,A17=0,A16=0,加上M/IO1,由此可以設(shè)計(jì)出74LS138的三個(gè)控制端G1、G2A和G2B的邏輯電路。M/IO信號可以同G1端直接相連;A18反向后與A19通過二輸入負(fù)邏輯與非門(即或門)接到G2A端,A17和A16通過二輸入負(fù)邏輯與非門(或門)連接到G2B端。其

50、他控制信號的連接:數(shù)據(jù)總線D7D0直接與存儲器芯片的8根數(shù)據(jù)引腳相連接;RD信號直接芯片的允許輸出引腳相連。具體的電路圖略。13、用8K8的EPROM 2764,8K8的RAM 6264和74LS138構(gòu)成一個(gè)16K字ROM,16K字RAM的存儲器子系統(tǒng)。8086工作在最小模式,系統(tǒng)帶有地址鎖存器8282,數(shù)據(jù)收發(fā)器8286。畫出存儲器系統(tǒng)與CPU的連接圖,寫出各芯片的地址分配。解題步驟如下:存儲器芯片數(shù)目的確定:需要EPROM芯片4片,每兩片組成一組(兩片存儲器芯片構(gòu)成一個(gè)字存儲器,一片為奇地址存儲體,另一片為偶地址存儲體),共有2組,編號為1#和2#;需要RAM芯片4片,每兩片組成一組(兩

51、片存儲器芯片構(gòu)成一個(gè)字存儲器,一片為奇地址存儲器,另一片為偶地址存儲器),共有2組,編號為3#和4#。片內(nèi)尋址地址線的選擇:由于每片2764芯片和6364芯片均為8K8位,即有8K(2138K)個(gè)存儲單元,所以需要13根地址線(A13A1)分別接到芯片的13個(gè)地址引腳,來選通片內(nèi)某個(gè)存儲單元。注意:A0不參與片內(nèi)尋址,用來作為奇偶存儲體的選擇信號。A0與BHE信號相配合來讀/寫每一組中的奇偶存儲體。片間尋址地址線的分配:A16、A15和A14分別連接到74LS138的C、B、A端,74LS138的8個(gè)輸出中的4個(gè)輸出端分別選擇4組(包括2組EPROM芯片和2組RAM芯片)存儲器芯片中的一組。輸入輸出選擇的芯片組號A16A15A14000Y01#001Y12#010Y23#011Y34#74LS138的三個(gè)控制端G1、G2A和G2B的連接:地址信號A19、A18、A17和M/IO通過邏輯電路與三個(gè)控制端相連??梢杂勺x者自行設(shè)計(jì)。如果選擇A19=1,A18=0,A17=0,M/IO信號可以同G1端直接相連;A19反向后接到G2A端,A18和A17通過二輸入負(fù)邏輯與非門(或門)連接到G2B端。二次譯碼:由于每一組存儲器由兩片存儲器芯片組成,一片為奇地址存儲體,另一片為偶地址存儲體,這兩個(gè)存儲體的選擇需要A0和BHE信號。因此,74LS138的每個(gè)輸出(Y0Y3)還需要同這

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論