




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理與接口技術習題參考答案第一章(p20)1、參考答案:馮諾伊曼計算機的設計思想(EDVAC方案:存儲程序通用電子計算機方案):計算機分為計算器、控制器、存儲器、輸入和輸出裝置五個部分;計算機內采用二進制;將程序存儲在計算機內,簡稱“程序存儲”。其中第三點是馮諾依曼計算機設計的精華,所以人們又把馮諾依曼原理叫做程序存儲原理,即程序由指令組成并和數據一起存放在存儲器中,機器則按程序指定的邏輯順序把指令從存儲器中讀出來并逐條執行,從而自動完成程序描述的處理工作。馮諾伊曼計算機主要以運算器和控制器為中心,結構框圖如下圖所示。2、參考答案:微處理器就是中央處理器CPU,是計算機的核心,單獨的CPU
2、不能構成計算機系統;微型計算機由微處理器、主存儲器、I/O接口(注意:不是I/O設備)組成;而微型計算機系統除了包括微型計算機外,還有系統軟件(即操作系統)、應用軟件、外存儲器和I/O設備等。微型計算機系統結構如下圖所示。3、答案略,見p674、答案略,見圖2,或教材圖1-35、答案略,見p12136、參考答案:由于8086微處理器的地址總線的寬度為20位,所以它可尋址2201M字節的存儲空間;而PentiumII微處理器的地址總線的寬度為36位,所以它可尋址236=64G字節的存儲空間。7、參考答案:PCI(Peripheral Component Interconnect:外圍設備互聯),
3、是Intel公司1992年發布486微處理器時推出的32/64位標準總線,數據傳輸速率位132MB/s,適用于Pentium微型計算機。PCI總線是同步且獨立于微處理器的具有即插即用(PNP:Plug and play,所謂即插即用,是指當板卡插入系統時,系統會自動對板卡所需資源進行分配,如基地址、中斷號等,并自動尋找相應的驅動程序)的特性.PCI總線允許任何微處理器通過橋接口連接到PCI總線上。USB(Universal Serial Bus:通用串行總線),是1994年由Compaq,IBM,Microsoft等多家公司聯合提出的。USB有兩種規格:V1.1和V2.0,USB 1.1傳輸速
4、度為12M/秒,而USB 2.0提高至360到480M/秒。USB 2.0是向下兼容USB 1.1,這意味著將一個USB 2.0的設備插到USB 1.1口中,只能按USB 1.1的速度運行。 USB連接方式十分靈活,支持熱插拔,不需要單獨的供電系統??梢酝ㄟ^一條4線串行線纜訪問USB設備,用于連接鍵盤、鼠標、投影儀、數碼相機等,現在成為每一臺計算機都必須配備的標準接口。8、參考答案:DB-Define byte 定義一個字節類型的變量,并為該變量分配內存DWDefine word 定義一個字類型的變量,并為該變量分配內存DD.Define double word 定義一個雙字類型的變量,并為該
5、變量分配內存9、參考答案:(1)1101.01b=13.25d(或13.25)(2)111001.0011b=57.1875(3)101011.0101b=43.3125(4)111.0001b=7.0625如何轉換?例如:101011.0101b1×25+1×23+1×2+1+1×2-2+1×2-4= 32+8+2+1+0.25+0.0625=43.312510、參考答案:(1)A3.3H=10×16+3+3×16-1=163.1875(2)129.CH=1×162+2×16+9+12×16-
6、1=297.75(3)AC.DCH=10×16+12+13×16-1+12×16-2=172.259375(4)FAB.3H=15×162+10×16+11+3×16-1=4011.187511、參考答案:(1)23=10111B=27Q=17H(2)107=1101011B=153Q=6BH(3)1238=10011010110B=2326Q=4D6H(4)92=1011100B=134Q=5CH12、參考答案:即把下面的數用8位補碼表示(1)+32=00100000B(2)-12=11110100B,即求-12的補碼(3)+100
7、=01100100B(4)-92=10100100B,即求-92的補碼13、參考答案:壓縮BCD碼就是用4位二進制表示一個09之間的十進制數非壓縮的BCD碼就是用8位二進制表示一個09之間的十進制數,8位二進制的最高4位可以位任何數,例如0000,09的ASCII碼實際上就是09的非壓縮BCD碼的表示。十進制數壓縮BCD碼非壓縮BCD碼1020001 0000 001000000001 00000000 00000010440100 010000000100 000001003010011 0000 000100000011 00000000 0000000110000001 0000 000
8、0 000000000001 00000000 00000000 0000000014、參考答案:如果二進制最高位為0,則該數為正數,反之,如果最高位為1,則該數為負數,對其做求補運算就得到其相反數。(1)10000000B=-128(2)00110011B=+51(3)10010010B=-78(4)10001001B=-11915、參考答案:一個單精度浮點數占4個字節(雙字),即32位二進制,其中符號位占1位,指數部分占8位,尾數部分占23位。十進制數表示成單精度浮點數的方法如下:填充符號位,如果是正數填0,如果是負數填1將數表示成二進制形式,并進行規格化對于單精度浮點數,指數加上127(
9、7FH);對于雙精度浮點數,指數要加上1023 (3FFH),并填充指數位填充尾數位(1)+1.5 由于是正數,所以符號位為0;寫成二進制并規格化得到1.1×20,由于2的指數是0,所以指數部分以0+127=01111111填充;由知,尾數為1,所以尾數部分以10000000000000000000000(1后面跟22個0)填充,綜上,得到+1.5的單精度浮點數表示為:+1.50 01111111 10000000000000000000000B寫成十六進制數為:+1.5=3F C0 00 00H(2)-10.625=C12A0000H(3)+100.25=42C88000H(4)-
10、1200.0=C4960000H16、參考答案:(1)0 10000000 11000000000000000000000B=3.5(2)1 01111111 00000000000000000000000B=-1.0(3)0 10000000 10010000000000000000000B=3.125第二章(p55p56)1、答案略,見p22242、答案略,見p24273、答案略,見p334、參考答案(其他可以參照本章相關內容): CPU:又稱微處理器,是計算機系統的核心,一般由邏輯運算單元、控制單元和一些寄存器組成。這些寄存器用于CPU在處理數據過程中數據的暫時保存。它主要完成從存儲器中
11、取指令,指令譯碼;算術邏輯運算;在處理器和存儲器或I/O接口之間傳送數據;程序的流向控制等。 存儲器:是計算機系統的記憶部件,主要用來存儲程序和數據。存儲器一般分為內部存儲器和外部存儲器兩大類。內部存儲器(內存)存放當前正在使用或經常使用的程序和數據,CPU可以直接訪問;外存存放“海量”數據,相對來說不經常使用,CPU使用時要先調入內存。內部存儲器又可以分為隨機存取存儲器(RAM)和只讀存儲器(ROM)。計算機系統存儲器的三層結構:按存儲容量由低到高(或按存取速度由高到低)分為高速緩沖存儲器(CACHE)、主存、輔存三層。 堆棧(Stack):堆棧是在存儲器中開辟一個區域,用來存放需要暫時保存
12、的數據;當前棧頂單元一般采用SP指向,棧底設在存儲器的高地址區,堆棧地址由高到低增長;堆棧的工作方式是“后進先出”,用入棧指令PUSH 和出棧指令POP可將數據壓入堆?;驈亩褩V袕棾鰯祿?,棧頂指針SP的變化由CPU自動管理,入棧操作SP減小,出棧操作SP增大;堆棧的操作以字為單位。 機器語言(Machine Language):計算機唯一能接受和執行的語言。機器語言由二進制碼組成,每一串二進制碼叫做一條指令,一條指令規定了計算機執行的一個動作,一臺計算機所能懂得的指令的全體,叫做這個計算機的指令系統,不同型號的計算機的指令系統不同。使用機器語言編寫程序是一種相當煩瑣的工作,既難于記憶也難于操作
13、,編寫出來的程序全是由0和1的數字組成,直觀性差、難以閱讀。不僅難學、難記、難檢查、又缺乏通用性,給計算機的推廣使用帶來很大的障礙。 匯編語言(Assembly Language):是一種符號語言,它和機器語言幾乎一一對應,在書寫時使用字符串組成的助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,如微軟的宏匯編程序MASM.EXE。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。匯編語言比機器語言易于讀寫、調試和修改,同時具有機器語言全部
14、優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。 指令(Instruction):指令是能被計算機識別并執行的二進制代碼,它規定了計算機能完成的某一操作。一條指令通常由兩個部分組成:操作碼+操作數。操作碼:指明該指令要完成的操作的類型或性質,如取數、做加法或輸出數據等。操作數:指明操作對象的內容或所在的存儲單元地址(地址碼),操作數在大多數情況下是地址碼,地址碼可以有03個。9、參考答案:題號段起始地址段結束地址a)1000H10000H1FFFFHb)1234H12340H2233FHc)2300H
15、23000H32FFFHd)E000HE0000HEFFFFHe)AB00HAB000HBAFFFH注意:段起始地址和段結束地址均為20位的物理地址;段起始的偏移量為0000H,所以段起始地址為段基地址×16偏移地址;由于每個段的最大容量為64K字節,段結束的偏移量為FFFFH,所以段結束地址為段基地址×16偏移地址段基地址×16FFFFH10、參考答案:a) CS:IP=1000H:2000H 下一條指令的存儲器地址為(CS)×16+(IP)=12000Hb) CS:IP=2000H:1000H 下一條指令的存儲器地址為(CS)×16+(IP
16、)=21000Hc) CS:IP=1A00H:B000H 下一條指令的存儲器地址為(CS)×16+(IP)=25000Hd) CS:IP=3456H:AB09H 下一條指令的存儲器地址為(CS)×16+(IP)=3F069 H11、參考答案:a) DS=1000H,DI=2000H 存儲單元地址為:(DS)×16+(DI)=12000Hb) SS=2300H,BP=3200H 存儲單元地址為:(SS)×16+(BP)=26200Hc) DS=A000H,BX=1000H 存儲單元地址為:(DS)×16+(BX)=A1000Hd) SS=2900
17、H,SP=3A00H 存儲單元地址為:(SS)×16+(SP)=2CA00H12、參考答案:堆棧段在存儲器中的物理地址(即堆棧段的起始地址)為:(SS)×16+0000H=35000H入棧10個字節后,SP=0800H-10=07F6H再出棧6個字節,SP=07F6H+6=07FCH13、參考答案:示意圖如左圖所示,如果要讀取這兩個字,則需要對存儲器進行三次操作。由于字2A8CH存放在偶地址開始的單元,所以只進行一次存儲器操作就可以讀取該字;由于字1EE5H存放在奇地址開始的單元,所以需要進行兩次存儲器操作才可以讀取該字。14、參考答案:段段起始地址段結束地址DS10E40
18、H20E3FHES10F40H20F3FHSS21F00H31EFFHCS31FF0H41FEFH可見,DS和ES有部分的重疊,重疊區域大小為:20E3FH-10F40H+1=FF00H字節;ES和SS之間有空隙,空隙的大小為:21F00H-20F3FH+1=0FC2H字節;SS和CS之間有空隙,空隙的大小為:31FF0H-31EFFH+1=00F2H字節OF SF ZF CF 均為017、參考答案:IF標志位控制INTR引腳20、答案略,見p4921、答案略第三章(p121p124)1、參考答案:題號源操作數尋址方式目的操作數尋址方式(1)立即尋址寄存器尋址(2)立即尋址寄存器尋址(3)寄存
19、器間接尋址寄存器尋址(4)寄存器尋址寄存器相對尋址(5)寄存器尋址寄存器相對尋址(6)立即尋址基址變址尋址(7)基址變址尋址寄存器尋址(8)寄存器尋址相對基址變址尋址(9)直接尋址*寄存器尋址(10)寄存器尋址寄存器尋址*對于IN指令,如果是長格式,源操作數的數字不是立即數,而是端口地址,所以源操作數的尋址方式是直接尋址;如果是短格式,即端口地址存放在DX寄存器中,則源操作數的尋址方式為寄存器間接尋址,如:IN AX,DX對于OUT指令,如果是長格式,目的操作數的數字不是立即數,而是端口地址,所以目的操作數的尋址方式是直接尋址,如OUT 20H,AL;如果是短格式,即端口地址存放在DX寄存器中
20、,則目的操作數的尋址方式為寄存器間接尋址,如:OUT DX,AX2、參考答案:題號源操作數尋址方式源操作數有效地址源操作數物理地址指令執行后AX中的內容(1)立即尋址-0200H(2)直接尋址0200H10200H2A10H(3)寄存器尋址-0200H(4)寄存器相對尋址0203H10203H5946H(5)基址變址尋址0202H10202H463CH(6)相對基址變址尋址0204H10204H6B59H注:10200H10205H單元存儲狀況如左圖所示3、參考答案:題號源操作數尋址方式源操作數有效地址源操作數物理地址(1)直接尋址0100H(DS)×16EA=10100H(2)直接
21、尋址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)相對基址變址尋址02D0H(SS)×16EA=352D0H(9)相對基址變址尋址0154H(DS)×16EA=10154H(10)基址變址尋址0224H(SS
22、)×16EA=35224H4、答案略5、參考答案:(1)該數據段的存儲狀況如下表所示:ABCDE000102030405060708090A0B0C0D0E0F101112131415162410434F4D50555445523412FF0000000000009A450012注:表格的第一行為變量名稱;第三行的每個小格子代表一個存儲單元;第二行為存儲單元的偏移地址以十六進制表示,從中可以看出各變量在數據段中的偏移地址,A的偏移地址為0000H,B的偏移地址為0002H,C的偏移地址為000AH,D的偏移地址為000EH,E的偏移地址為0013H;第三行為存儲單元的具體內容,以十六
23、進制表示。(2)寫出各條指令執行后的結果指令執行后的結果MOV AL,AAL=24HMOV DX,CDX=1234HXCHG DL,ADL=24H,A變量的第一個單元的內容變為34HMOV BX,OFFSET BBX=0002HMOV CX,3BXCX=5550HLEA BX,DBX=000EHLEA SI,ESI=0013HLEA DI,EDI=0013H6、參考答案:題號錯誤原因(1)兩操作數的類型不一致(2)立即數不能做目的操作數(3)立即數不能直接傳送給段寄存器(4)兩操作數不能同時為存儲器操作數(5)IP寄存器的內容不能由用戶更改,而由系統自動修改(6)正確(7)兩基址寄存器不能放在
24、一起使用(8)正確(9)兩變址寄存器不能放在一起使用(10)不能取立即數的偏移地址,OFFSET操作符使用不當(11)存儲單元的偏移地址應為字類型,不能放到字節寄存器中(12)XCHG指令的操作數不能為立即數(13)IN指令從端口讀取的數據只能放在累加器AL或AX中(14)OUT指令的源操作數應為累加器,目的操作數應為端口地址,且如果端口地址超過0FFH(255),端口地址應放在DX寄存器中7、程序片段如下:LEA BX,TABLEMOV AL,57MOV AH,0MOV DL,10DIV DLPUSH AXXLATMOV CH,ALPOP AXMOV AL,AHXLATMOV CL,ALMO
25、V BX,CX8、解答:SP的變化情況指令執行后SP內容PUSH AXSPßSP-200FEHPUSH BXSPßSP-200FCHPOP BXSPßSP+200FEHPOP AXSPßSP+20100H9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1則單獨執行下列各條指令后,各相關寄存器內容是什么?題號指令執行后相關寄存器內容(1)AL=0ACH(2)BX=8ACFH(3)AX=EB24H(4)BX=3455H(5)CX=0A988H(6)BL=57H(7)乘積為雙字存放在DX:AX中:DX=03B8H AX=0
26、AD78H(8)商存放在AL中,余數存放在AH中:AL=26H AH=64H10、參考程序片段如下:;定義數據段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,SUMMOV AH,0MOV CL,7DIV CLMOV AVERAGE,AL;平均分存入AV
27、ERAGE中11、參考答案:題號結果CF(1)AH=04H0(2)BL=36H0(3)AX=0DAF7H0(4)CX=0FFF4H0(5)相關寄存器內容沒有改變0(6)相關寄存器內容沒有改變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)程序片段如下:先定義一個附加段,用來存放The computerEXTRA SEGMENTS2 DB The compute
28、rEXTRA ENDSLEA SI,STRINGLEA DI,S2MOV CX,12CLDREPZ CMPSBJZ NEXT;若比較的兩個字符串相同,則跳到NEXT執行MOV AL,0; 若比較的兩個字符串不相同SUB CL,12NEG CLMOV BL,CL;比較的次數存入BL中RETNEXT:MOV AL,1MOV BL,12RET(3)程序片段如下:LEA DI,STRING;被查找的字符串STRING作為目的串MOV AL,&MOV CX,26CLDREPNZ SCASBJNZ EXIT;如果沒有找到,直接退出DEC DI;找到&字符的位置MOV BYTE PTR ES
29、:DI,20H;用空格字符替換EXIT: RET(4)完整的程序如下*:;這里的DATA既作為數據段,又作為附加段,即數據段和附加段公用一個段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 AXMOV AX,DATAMOV DS,AXMOV ES,AX;把
30、字符串中大寫字母傳送到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;將STRING字符串清零LEA DI,STRINGMOV A
31、L,0MOV CX,COUNTCLDREP STOSBRETMAIN ENDPCODE ENDSEND MAIN13、完整的程序如下:CODE SEGMENTASSUME CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXXOR SI,SI;SI中存放DX中1的個數XOR DX,DXMOV AX,1234HMOV CX,16AGAIN:ROR AX,1JNC NEXTINC SIPUSH CXDEC CLMOV BX,1SHL BX,CLOR DX,BXPOP CXNEXT:LOOP AGAINRETMAIN ENDPCODE ENDSEND MAIN程序的
32、運行結果:AX=1234H DX=2C48H SI=0005H,結果正確14、參考答案:指令跳轉類型程序的轉向*(1)JMP PROG_N段內直接跳轉IP=0278H(2)JMP BX段內間接跳轉IP=(BX)=0300H(3)JMP BX段內間接跳轉IP=(DS)×16(BX)=(20300H)=4800H(4)JMP FAR PROG_F段間直接跳轉IP=0ABCH CS=3400H(5)JMP DWORD PTR BX段間間接跳轉IP=(20300H)=4800H CS=(20302H)=00FFH*如果是段內轉移,跳轉指令只改變IP寄存器的內容,前三條跳轉指令是段內跳轉;如果
33、是段間跳轉,跳轉指令同時改變IP和CS寄存器的內容,后兩條跳轉指令是段間跳轉。15、參考答案:寄存器LOOP NEXTLOOPE NEXTLOOPNE NEXTAX2 3 4 522 3BX4 7 11 1644 7CX3 2 1 033 2DX1 0 0 011 0注意:三個循環指令LOOP、LOOPE和LOOPNE終止循環的條件是不一樣的。16、參考答案:中斷向量表的作用:中斷向量表用于存放256種中斷的中斷服務程序的入口地址,每種類型中斷的中斷服務程序的入口地址占用4個字節,存儲CS和IP,總共需要1024個字節,即1K字節。中斷向量表位于內存的最低1K字節,地址范圍為:00000H00
34、3FFH。類型3的中斷的中斷服務程序的入口地址存放在:0000CH0000FH這四個單元。17、參考答案:如下圖所示解釋:由于中斷類型號為2,所以該類型中斷的中斷服務程序入口地址占據內存最低1K字節的2×4,2×4+1,2×4+2,2×4+3四個單元。前兩個單元存放中斷服務程序IP值,即0016H,后兩個單元存放中斷服務程序的CS值,即0485H。由于CS和IP值均為一個字,所以在存放中斷服務程序入口地址的CS和IP值時,低位字節存放在低地址區,高位字節存放在高地址區。18、參考答案:(1)中斷類型號為16(2)該中斷服務程序的起始地址是:CS:IP=D
35、169H:240BH解釋:由于中斷向量表中地址為0040H開始存放某類型中斷的中斷服務程序的入口地址,所以0040H除以4就可以得到該類型中斷的中斷類型號n,即n=16。中斷服務程序的入口地址的CS值存放在0042H單元里,IP值存放在0040H單元里。19、參考答案:中斷類型號(專用中斷)響應中斷的條件0:被0除當除數為0或商超過了寄存器所能表示的范圍,就產生了一個類型為0的中斷1:單步中斷,由Debug單步調試引起當TF=1,每條指令執行后,CPU自動產生類型為1的中斷2:NMI不可屏蔽中斷,用來處理緊急事件,如:電源掉電,CPU必須予以響應3:斷點中斷,由Debug設置斷點引起用debu
36、g調試程序時,可用g命令設置斷點,當CPU執行到斷點時便產生類型為3的中斷,同時顯示當前各寄存器和有關存儲器的內容及下條要執行的指令,供用戶檢查。4:溢出中斷如果當前運算的結果產生溢出,則OF=1,下面緊跟溢出中斷指令INTO,立刻產生一個類型為4的中斷20、參考答案:MOV CX,N;4個時鐘周期NEXT:NOP;N×3個時鐘周期NOP;N×3個時鐘周期LOOP NEXT;(N-1)×17+1×5個時鐘周期由f=5MHz,t=0.2us,延時5ms需要個時鐘周期所以:4+N×3N×3(N-1)×17+1×5=25
37、000解得:N=1087第四章(p205p206)1、參考答案(寫出各變量在內存中的存儲狀況)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個字節,在內存中的存儲狀況(以十六進制表示,從左到右地址依次增加,以下同):23 00 78 56變量A2占6個字節,在內存中的存儲狀況:00 00 00 0A 0D 24變量A3占40個字節,在內存中的存儲狀況:34 12 00 00 90 78 56 00 (再重復4遍)變量A4占60個字節,在內存中的存儲
38、狀況: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 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43(帶下畫線部分重復4遍)2、參考答案(寫出各指令執行后的結果)指令結果MOV AX,00FFH AND 1122H+3344HAX=0066H,先加后與MOV AL,15 GE 1111BAL=0FFHMOV AX,00FFH LE 2
39、55+6/5AX=0FFFFH,先加后比較AND AL,50 MOD 4AL=02HOR AX,0F00FH AND 1234 OR 00FFHAX=0FFFFH,先與后或,再把計算的結果同AX進行或運算,最終結果保存在AX中3、參考答案:L=6,L的值實際就是BUF變量在內存中占有的字節數。4、參考答案:PLENGTH=22,PLENGTH的值實際就是三個變量PAR、PNAME和COUNT在內存中占有的總的字節數。5、參考答案:AX=1 BX=20 CX=16、參考答案:AH=00H7、(1)利用中斷調用產生5秒延時data segments db '5 second is gone
40、',13,10,'$'data endscode segmentassume cs:code,ds:datamain proc farmov ax,datamov ds,axmov ah,2chint 21h;取得當前時間:chà時 clà分 dhà秒 dlà1/100秒mov bl,dhcontinue:mov ah,2chint 21hsub dh,blcmp dh,5jb continue;判斷兩次取得時間間隔是否為5秒鐘,如果不是則繼續讀取時間lea dx,s;如果達到5秒,則顯示一條信息mov ah,9int 21hmo
41、v ax,4c00hint 21hmain endpcode endsend main(2)利用中斷調用,在屏幕上顯示19之間的隨機數思路:利用DOS系統功能調用得到當前時間,其中的dl寄存器中存放的是1/100秒,可以用來產生隨機數。code segmentassume cs:codemain proc farmov ah,2chint 21hmov al,dl;取得1/100秒,不同時間運行該程序時得到的這個數字也不一樣,具有隨機性mov ah,0mov bl,9;除以9div bl;相除后的余數ah的范圍為08inc ah;加1后得到19之間的數add ah,30h;轉換為ASCII碼m
42、ov dl,ahmov ah,2int 21h;在屏幕上顯示該數mov ax,4c00hint 21hmain endpcode endsend main8、(1)二進制到壓縮BCD碼的轉換。把AX中的二進制數轉換為壓縮的BCD碼,仍然存放AX寄存器中。例如:如果AX中的二進制數為0010 0110 1001 0100B=2694H,化成十進制數是9876,其壓縮的BCD碼是1001 1000 0111 0110,用十六進制表示是9876H。即這種轉換實際就是把2694H轉換為9876H。考慮到AX中能夠存放的最大的四位壓縮BCD數為9999H,所以在轉換之前需要判斷AX中的二進制數不能超過9
43、999,即270FH。第五章(p237238)1、靜態RAM和動態RAM的區別靜態RAM(SRAM)動態RAM(DRAM)集成度低高容量小大刷新無附加刷新電路速度快較慢應用場合高速緩沖存儲器(CACHE)內存條2、ROM、PROM、EPROM、EEPROM在功能上各有何特點答案略(見教材p208)3、DRAM的CAS和RAS輸入的用途是什么?答:為了提高DRAM的集成度,減少引腳的數目,DRAM的地址線分成行地址和列地址兩部分,在對存儲器進行訪問時,先由行地址選通信號RAS把行地址送入行地址鎖存器,再由列地址選通信號CAS把列地址送入列地址鎖存器,并由讀寫信號控制數據的讀出或寫入。4、什么CA
44、CHE?作用是什么?處于微處理機中的什么位置?答:CACHE即高速緩沖存儲器,通常由SRAM組成。其作用是:將經常訪問的代碼和數據保存到由SRAM組成的高速緩沖存儲器中,把不經常訪問的數據保存到由DRAM組成的主存中,這樣使存儲器系統的價格降低,同時又降低了接近零等待的性能,大大的提高了系統的性能。CACHE位于CPU和主存儲器之間。7、用1024×1位的RAM芯片組成16K×8位的存儲器,需要多少芯片?在地址線中有多少位參與片內尋址?多少位合成片選信號?(設地址總線為16位)答:需要16×8128片RAM芯片,其中每8片為一組,總共有16組;地址線中有10位參與
45、片內尋址;由于有16組芯片,余下的6根地址線中至少需要4根合成片選信號,來選中其中的一組芯片。8、現有一存儲器芯片的容量為512×4位,若要用它組成4KB的存儲器,需要多少這樣的芯片?每塊芯片需要多少尋址線?整個存儲系統最少需要多少尋址線?答:需要的芯片的數目為16片,每兩片為一組,共有8組;每塊芯片需要9根尋址線;由于共有8組芯片,至少需要3根地址線合成片選信號用來選擇8組芯片中的一組;整個存儲器系統至少需要9312根地址線。9、利用1024×8位的RAM芯片組成4K×8位的存儲器系統,用A15A12地址線用線性選擇法產生片選信號,存儲器地址的分配有什么問題?寫
46、出各芯片的地址分配。答:需要的芯片的數目:4片片內尋址需要的地址線的數目:由于每片RAM芯片內部有1024個存儲單元,所以需要10根地址線用于選中其中某一個存儲單元,占用地址總線的低10位(A9A0)片間尋址需要的地址線的數目:由于需要4片存儲器芯片,所以至少需要2根地址線進行譯碼用于選擇4片芯片中的一片,這樣占用地址總線的A11和A10。余下的地址總線用線性選擇法產生片選信號,這樣A15A12的電平的不同組合就產生了不同的地址空間,使得存儲器芯片的地址空間產生重疊。如果A15A12的電平組合為:A15=1,其余的均為0,則4片存儲器芯片的地址范圍分別為: A15 A14 A13 A12 A1
47、1 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 =8800H 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、當從存儲器偶地址單元讀一個字節數據時,寫出存儲器的控制信號和它們的有效電平(8086工作在最小模式)。答案如下表所示:信號名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平80
48、86讀寫對象為存儲器,而不是I/O接口BHE高電平從偶地址單元讀寫一個字節A0低電平RD低電平讀數據11、當要將一個字寫入到存儲器奇地址開始的單元中,列出存儲器的控制信號和他們的有效電平(8086工作在最小模式)。答案如下表所示:分兩次寫入:第一次:信號名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平8086讀寫對象為存儲器,而不是I/O接口BHE低電平把這個字的低位字節寫入奇地址單元A0高電平WR低電平寫數據第二次:信號名稱有效電平作用MN/MX高電平8086工作在最小模式M/IO高電平8086讀寫對象為存儲器,而不是I/O接口BHE高電平把這個字的高位字節寫入接下來的偶
49、地址單元A0低電平WR低電平寫數據12、設計一個64K×8的存儲器系統,采用74LS138和EPROM 2764器件,使其尋址空間范圍為:40000H4FFFFH。解題步驟如下:存儲器芯片數目的確定:由于每片2764芯片為8K×8位,要組成64K×8的存儲器系統,需要8片2764芯片,編號為1#8#;片內尋址地址線的選擇:由于每片2764芯片為8K×8位,即有8K(2138K)個存儲單元,所以需要13根地址線(A12A0)分別接到芯片的13個地址引腳,來選通片內某個存儲單元;片間尋址地址線的分配:A15、A14和A13分別連接到74LS138的C、B、A
50、端,74LS138的8個輸出分別接到8片2764的CS端;輸入輸出選擇的芯片號A15A14A13000Y01#001Y12#010Y23#011Y34#100Y45#101Y56#110Y67#111Y78#余下的地址線的連接:A19A16和M/IO信號通過邏輯電路接到74LS138的三個控制端G1、G2A和G2B,具體的邏輯電路的設計與題目給定的尋址空間范圍有關,如果題目沒有給定尋址空間范圍,邏輯電路由讀者自行設計;根據尋址空間范圍設計控制端的邏輯電路:把最低地址40000H表示成二進制形式為:0100 0000 0000 0000 0000,可知20位地址總線高4位(A19A16)的電平組
51、合為A19=0,A18=1,A17=0,A16=0,加上M/IO1,由此可以設計出74LS138的三個控制端G1、G2A和G2B的邏輯電路。M/IO信號可以同G1端直接相連;A18反向后與A19通過二輸入負邏輯與非門(即或門)接到G2A端,A17和A16通過二輸入負邏輯與非門(或門)連接到G2B端。其他控制信號的連接:數據總線D7D0直接與存儲器芯片的8根數據引腳相連接;RD信號直接芯片的允許輸出引腳相連。具體的電路圖略。13、用8K×8的EPROM 2764,8K×8的RAM 6264和74LS138構成一個16K字ROM,16K字RAM的存儲器子系統。8086工作在最小
52、模式,系統帶有地址鎖存器8282,數據收發器8286。畫出存儲器系統與CPU的連接圖,寫出各芯片的地址分配。解題步驟如下:存儲器芯片數目的確定:需要EPROM芯片4片,每兩片組成一組(兩片存儲器芯片構成一個字存儲器,一片為奇地址存儲體,另一片為偶地址存儲體),共有2組,編號為1#和2#;需要RAM芯片4片,每兩片組成一組(兩片存儲器芯片構成一個字存儲器,一片為奇地址存儲器,另一片為偶地址存儲器),共有2組,編號為3#和4#。片內尋址地址線的選擇:由于每片2764芯片和6364芯片均為8K×8位,即有8K(2138K)個存儲單元,所以需要13根地址線(A13A1)分別接到芯片的13個地
53、址引腳,來選通片內某個存儲單元。注意:A0不參與片內尋址,用來作為奇偶存儲體的選擇信號。A0與BHE信號相配合來讀/寫每一組中的奇偶存儲體。片間尋址地址線的分配:A16、A15和A14分別連接到74LS138的C、B、A端,74LS138的8個輸出中的4個輸出端分別選擇4組(包括2組EPROM芯片和2組RAM芯片)存儲器芯片中的一組。輸入輸出選擇的芯片組號A16A15A14000Y01#001Y12#010Y23#011Y34#74LS138的三個控制端G1、G2A和G2B的連接:地址信號A19、A18、A17和M/IO通過邏輯電路與三個控制端相連。可以由讀者自行設計。如果選擇A19=1,A18=0,A17=0,M/IO信號可以同G1端直接相連;A19反向后接到G2A端,A18和A17通過二輸入負邏輯與非門(或門)連接到G2B端。二次譯碼:由于每一組存儲器由兩片存儲器芯片組成,一片為奇地址存儲體,另一片為偶地址存儲體,這兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025園林綠化設計合同范本
- 2025勞動合同協議書范本模板
- 2025企業合同終止的情形分析:合規解除勞動合同的途徑與條件
- 江蘇省鎮江市2024-2025學年高一上學期期中檢測生物試卷 含解析
- 腰椎疼痛康復護理
- 脊柱外科術后護理
- 靜脈留置消毒護理
- 心臟支架術后護理規范
- 【方案】2024咪咕全域營銷媒體手冊6928mb
- 三晉卓越聯盟·2024-2025學年高三5月質量檢測卷(25-X-635C)生物(B)
- 上海市單位退工證明退工單
- 《企業財務現狀的杜邦分析-以大疆科技為例》開題報告(含提綱)2400字
- 2023屆高考模擬作文“人生有兩段路要走”漫畫作文導寫及范文
- YS/T 778-2011真空脫脂燒結爐
- GB/T 30776-2014膠粘帶拉伸強度與斷裂伸長率的試驗方法
- GB/T 18574-2001地鐵客運服務標志
- GB/T 10294-2008絕熱材料穩態熱阻及有關特性的測定防護熱板法
- 五年制高職語文課程標準
- 超星爾雅學習通《法律基礎》章節測試含答案
- 老年患者圍手術期管理課件
- 英格索蘭空壓機基礎知識課件
評論
0/150
提交評論