李伯成《微型計算機原理及應用》課后習題答案_第1頁
李伯成《微型計算機原理及應用》課后習題答案_第2頁
李伯成《微型計算機原理及應用》課后習題答案_第3頁
李伯成《微型計算機原理及應用》課后習題答案_第4頁
李伯成《微型計算機原理及應用》課后習題答案_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

李伯成《微機原理》習題第一章本章作業參考書目:①薛鈞義主編《微型計算機原理與應用——Intel80X86系列》機械工業出版社2002年2月第一版②陸一倩編《微型計算機原理及其應用〔十六位微型機〕》哈爾濱工業大學出版社1994年8月第四版③王永山等編《微型計算機原理與應用》西安電子科技大學出版社2000年9月1.1將以下二進制數轉換成十進制數:X=10010110B=1*27+0*26+0*25+1*24+0*23+1*22+1*21+0*21=128D+0D+0D+16D+0D+0D+4D+2D=150DX=101101100B=1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20=256D+0D+64D+32D+0D+16D+4D+0D=364DX=1101101B=1*26+1*25+0*24+1*23+1*22+0*21+1*20=64D+32D+0D+8D+4D+0D+1D=109D1.2將以下二進制小數轉換成十進制數:〔1〕X=0.00111B=0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=0D+0D+0.125D+0.0625D+0.03125D=0.21875D(2)X=0.11011B=1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D(3) X=0.101101B=1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D1.3 將以下十進制整數轉換成二進制數:〔1〕X=254D=11111110B〔3〕X=141D=10001101B1.4將以下十進制小數轉換成二進制數:〔1〕X=0.75D=0.11B(2)X=0.102D=0.0001101B(3)X=0.6667D=0.101010101B1.5將以下十進制數轉換成二進制數(1)100.25D=01100100.01H(2)680.75D=001010101000.11B1.6將以下二進制數轉換成十進制數(1)X=1001101.1011B=77.6875D(2)X=111010.00101B=58.15625D1.7將以下二進制數轉換成八進制數〔1〕X=101011101B=101’011’1’101’(3)X=110B=6Q1.8將以下八進制數轉換成二進制數:〔1〕X=760Q=111'110'000B〔2〕X=32415Q=11'010'100'001'101B1.9將以下二進制數轉換成十六進制數:X=101010111101101B=55EDHX=1100110101'1001B=11001101011001B=3359HX=1000110001B=1000110001B=231H1.10將以下十六進制數轉換成二進制數:X=ABCH=101010111100BX=3A6FX=F1C3.4B=1111000111000011.01001011B1.11將以下二進制數轉換成BCD碼:(1)X=1011011.101B=1'011'011.101B=91.625d=10010001.0110BCD(2)X=1010110.001B=1’010’110.001=126.11.12將以下十進制數轉換成BCD碼:〔1〕X=1024D=0001000000100100BCD〔2〕X=632=011000110010BCD〔3〕X=103=000100000011BCD1.13寫出以下字符的ASCII碼:A41H65D01000001B939H47D*2AH42D=3DH45D!21H33D1.14假設加上偶校驗碼,以下字符的ASCII碼是什么?字符原碼加上偶校驗碼之后 B42H,01000010B 42H,01000010B434H,00110100BB4H,10110100B737H,00110111BB7H,10110111B=3DH,00111101BBDH,10111101B!21H,00100001B21H,00100001B?3FH00111111B3FH,00111111B1.15加上奇校驗,上面的結果如何?字符原碼加上奇校驗碼之后 B42H,01000010B C2H,11000010B434H,00110100B34H,00110100B737H,00110111B37H,00110111B=3DH,00111101B3DH,00111101B!21H,00100001BA1H,10100001B?3FH00111111BBFH,10111111B1.16計算下式:〔1〕[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21BCD==F3H*0.21BCD=(-DH)*0.21BCD=-2.73D(2)3CH–[(84D)/(16Q)+’8’/8D]=60D-[84D/14D+(56/8)]=60D-[13]D==47D1.17對以下十進制數,用八位二進制數寫出其原碼、反碼和補碼:(正數的反碼與原碼相同,負數的反碼除符號位之外其余各位按位取反。正數的補碼與原碼相同;負數的補碼除符號位以外,其余各位按位取反之后再加一。)數據原碼反碼補碼+99011000110110001101100011-99111000111001110010011101+12701111111 0111111101111111-127111111111000000010000001+0000000000000000000000000-01000000011111111000000001.188位二進制數原碼可表示數的范圍是+127~-128;8位二進制數補碼可表示的數的范圍是+127~-127;8位二進制數反碼可表示的數的范圍是:+127~-128;16位二進制數的原碼、補碼、反碼可表示的數的范圍是多少?+32767~-32768、+32767~-32768、+32767~-32768;1.20至少寫出3種用二進制編碼狀態表示十進制數字的編碼方式。8421碼、5421碼2421碼余3碼0000000000000011 00001000100010100 10010 001010000101 20011 001110010110 30100 010010100111 40101 100010111000 50110 100111001001 6011110101101101071000101111101011810011100111111009李伯成《微機原理》習題第二章①薛鈞義主編《微型計算機原理與應用——Intel80X86系列》機械工業出版社2002年2月第一版②陸一倩編《微型計算機原理及其應用〔十六位微型機〕》哈爾濱工業大學出版社1994年8月第四版③王永山等編《微型計算機原理與應用》西安電子科技大學出版社2000年9月④洪志全等編《現代計算機接口技術》電子工業出版社2002年4月⑤仇玉章主編《32位微型計算機原理與接口技術》清華大學出版社2000年9月2.18086CPU的RESET引腳的功能是什么?答:RESET引腳稱為復位引腳,輸入、三態、高電平有效;RESET引腳將使CPU立即結束當前操作,處理器要求RESET信號至少要保持4個時鐘周期的高電平,才能結束它正在進行的操作。CPU復位以后,除了代碼段存放器CS的值為FFFFH外,其余所有存放器的值均為零,指令隊列為空。當RESET回到低電平時,CPU開始執行“熱啟動”程序,由于此時CS的值為FFFFH,IP的值為0000H,所以CPU復位以后執行的第一條指令的物理地址為FFFF0H,該單元通常放置一條段間直接轉移指令JMPSS:OO,SS:OO即為系統程序的實際起始地址。2.2在8086CPU工作在最小模式時,〔1〕當CPU訪問存儲器時,要利用哪些信號?當CPU訪問存儲器時,要利用AD0~AD15、WR*、RD*、IO/M*以及A16~A19;〔2〕當CPU訪問外設接口時,要利用哪些信號?當CPU訪問外設接口時,同樣要利用AD0---AD15、WR*、RD*以及IO/M*,但不使用高端地址線A16---A19;〔3〕當HOLD有效并得到響應時,CPU哪些引腳置高阻?當HOLD有效并得到響應時,CPU除HOLD、HOLDA引腳外其余所有的信號引腳均為高阻態。略說明8086CPUREADY信號的功能。見P232.58086CPU的NMI和INTR引腳的不同有幾點?兩點:〔1〕INTR是可以由用戶用指令禁止的,〔通過中斷允許標志IF的開---STI和關CLI進行〕;而NMI不能由用戶禁止;(2)INTR是可以區分優先級別的,NMI是最高級的,沒有中斷優先級的排隊。2.6說明8086CPU內部標志存放器各位的含義。8086CPU的標志存放器〔PSW或FLAG〕共有9個標志位,分別是:CF〔CarryFlag〕---進位或借位標志;PF〔ParityFlag〕---奇偶標志;AF〔auxiliaryFlag〕----半進位標志;ZF〔ZeroFlag〕-----結果為零標志;SF(SignFlag)-----符號標志;OF〔OverflowFlag〕-----溢出標志;IF〔InterruptEnableFlag〕-----中斷允許標志;DF(DirectionFlag)----方向標志;TF(TrapFlag)-----陷阱標志。2.7說明8086CPU內部14個存放器的作用。8086內部的存放器可以分為3類:第一類:通用存放器:AX、BX、CX、DX、SI、DI、SP、BP,共8個可以存儲數據或者地址的低16位;AX、BX、CX和DX可以分成8個8位的存放器使用;SI、DI又稱變址存放器,用于存儲變址地址;SP和BP存放指針變量值。第二類:段存放器:CS、DS、SS、ES,共4個存放器,只能存放對應段的段地址;第三類為IP和FLAG,IP在通常情況下不允許用戶訪問,而FLAG是用以向用戶提供了解ALU工作狀態或者控制CPU工作方式的標志存放器。2.8試畫出8086CPU工作在最小模式時的總線形成示意圖。(注:BHE*引腳為34腳---即SS0,參見P25狀態編碼表)四點說明:A、MN/MX端接+5V,決定了8086工作在最小模式。B、有一片8234A,作為時鐘發生器。C、有三片8282或74LS373,用來作為地址鎖存器。D、當系統中所連接的存儲器和外設比擬多時,需要增加系統數據總線的驅動能力,這時,要用兩片8286/8287(74LS244或74LS245)作為總線收發器。2.98086/8088為什么采用地址/數據引線復用技術?答:考慮到芯片本錢,8086/8088采用40條引線的封裝結構。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數據線復用引線方法可以解決這一矛盾,從時序邏輯的角度,地址與數據信號不會同時出現,二者可以分時復用同一組引線。2.10怎樣確定8086的最大或最小工作模式?最大、最小模式產生控制信號的方法有何不同?答:引線MN/MX*的邏輯狀態決定8086的工作模式,MN/MX*引線接高電平,8086被設定為最小模式;MN/MX*引線接低電平,8086被設定為最大模式。最小模式下所有的控制信號由CPU相關引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入由8086的S2─S0三條狀態信號引線提供。李伯成《微機原理》習題第三章本章作業參考書目:1.周明德:微型計算機IBM-PC系統原理與應用清華大學出版社19912.王永山等:微型計算機原理與應用西安電子科大出版社19983.張懷蓮:IBMPC匯編語言程序設計電子工業出版社1990注:本習題解中的程序僅為代碼片段,可在Emu8086version2.57環境下仿真運行,如果在MASM下進行匯編,需添加段設置以及相應的偽指令。MOV AX,00H; 立即尋址SUB AX,AX; 存放器尋址MOV AX,[BX]; 存放器間接尋址MOV AX,TABLE; 直接尋址MOV AL,ARAY1[SI]; 存放器相對尋址 MOV AX,[BX+6]; 存放器相對尋址假設1KB的數據存放在TABLE以下,試編寫程序將該數據拌到NEXT之下。程序片段如下:ORG100h MOV CX,03FFH;數據個數 LEA SI,TABLE;源區首地址 LEA DI,NEXT;目的區首地址AGAIN: MOV AL,[SI]; MOV [DI],AL;搬移 INC SI INC DI; 移動地址指針 DEC CX; 循環計數器遞減 JNZ AGAIN; 循環未結束轉 HLT; 暫停 TABLEDB1024dup('A');源數據區 NEXT DB1024dup(0); 目的數據區編寫10個字〔16位二進制數〕之和的程序ORG100h LEA SI,ADD1; LEA DI,ADD2; LEA BX,SUM; MOV CL,CONT; MOV CH,0;循環初始化 CLC; 進位清零MADD1: MOV AX,[SI]; 讀加數1 ADC AX,[DI] ADD SI,2; 移動源區地址指針 ADD DI,2; 移動目的區地址指針 MOV [BX],AX; 回存計算結果 ADD BX,2; 移動“和”存儲區地址指針 LOOP MADD1; 循環控制 HLT; 暫停ADD1 DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加數1ADD2 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;加數2SUM DB 10DUP(0);和存儲單元CONT DB 5;循環次數3.4某16位二進制數,放在DATA連續的兩個單元中,試編程求其平方根和余數,將其分別存放在ANS和REMAIN中。ORG100h MOV BL,2; 除數初值 AGAIN: MOV CX,NUM; 預計最大循環次數 MOV AL,BL; 0、1的平方鏟除外 MUL BL; 得到2的平方 CMP AX,CX; 大于原始數據么? JG EXIT; 假設原始數據小于4轉EXIT MOV AX,CX; 讀數 DIV BL; 試除 INC BL; 除數遞增 JMP AGAIN; 繼續除 EXIT: DEC BL; 去除除數自加 MOV ANS,BL; 存商 MOV AL,BL; 恢復余數 MUL BL; SUB CX,AX; MOV REMAIN,CL; HLT NUM DW 7; ANS DB ?; REMAIN DB ?;3.5在DATA1之下順序存放著以ASCII碼表示的千位數,將其轉換成二進制數。MOV CL,4; 移位次數 MOV CH,CL; 循環次數 MOV SI,OFFSETASCBIN CLD XOR AX,AX XOR DX,DXASCB1: LODSB AND AL,7FH CMP AL,'0' ;不大于‘0’結束轉換 JL ERR CMP AL,'9' JG ASCB2 ;大于‘9’轉ASCB2 SUB AL,30H ;數字形式二進制數減30H JMP ASCB3ASCB2: CMP AL,'A' ;大于‘9’又小于‘A’結束轉換 JL ERR CMP AL,'F' JG ERR ;大于‘F’為不合理數,結束轉換 SUB AL,37H ;字符形式ASCII數減37HASCB3: OR DL,AL ROL DX,CL DEC CH JNZ ASCB1 ROL DX,CL MOV BIN,DX;存儲轉換結果ERR: NOP HLTASCBIN DB'1','B,'4','3'BIN DW ?3.7編寫程序將MOLT中的一個8位數乘以20,乘積放在ANS中〔用3種方式〕。解:第一種方法:常規乘法運算 ORG100h MOV AL,MOLT MOV BL,20 MUL BL MOV ANS,AX HLT MOLT DB 2 ANS DW ?第二種方法,將MOLT連加20次ORG100h MOV CX,20 MOV BX,MOLT XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLTDW 5 ANS DW ?第三種方法,將“20”連加MOLT次ORG100h MOV CX,MOLT MOV BX,20 XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLTDW 5 ANS DW ?3.8 在DATA之下存放100個無符號的8位數,找出其最大者并將其存放在KVFF單元。ORG100h XOR DL,DL LEA DI,KVFF; NEXT0: LEA SI,BUFFER; MOV CL,99; 比擬次數為N-1次 NEXT1: MOV AL,[SI]; INC SI; CMP DL,AL; JNC NEXT2; MOV DL,AL; DL中始終存目前最大值NEXT2: DEC CL; JNZ NEXT1; MOV [DI],DL;最大值存儲 HLT BUFFERDB;自行定義100個數據 KVFFDB ?3.9假設將數據按大小順序排序,試編寫程序..解:此處采用“冒泡法”予以處理: ORG100h LEA DI,BUFFER; 數據區 MOV BL,99; 外循環次數 NEXT0: MOV SI,DI; MOV CL,BL; 內循環次數 NEXT3: MOV AL,[SI]; 讀數 INC SI; 移動指針 CMP AL,[SI]; 比擬 JNC NEXT5; 大于轉NEXT5 MOV DL,[SI]; MOV [SI-1],DL; MOV [SI],AL; 不大于互換 NEXT5: DEC CL; 內循環次數減一 JNZ NEXT3; DEC BL; 外循環次數減一 JNZ NEXT0 HLT BUFFERDB自行定義100個字節型數據3.10在BVFF單元中有一個BCD數A,試根據以下關系編寫程序,計算結果存在DES中.A<20,Y=3*A;A<60,Y=A-20;A>=60,Y=80. ORG100h MOV AL,BVFF CMP AL,20 JL EX1 CMP AL,60 JL EX2 MOV AL,80 JMP STOP EX1: MOV BL,3 MUL BL JMP STOP EX2: SUB AL,20 STOP: MOV DES,AL HLT BVFF DB8 DES DB?3.11址為DATAB開始的80個單元中,存放某班80個學生的某課程成績,要求:統計>=90分、80~89分、70~79分、60~69分、60分以下的人數,結果存放在BTRX開始的5個單元中求平均成績,結果存放在LEVEL中。解:存放器使用分配:90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,總分、均分都在[DI]。 ORG100h XOR AH,AH XOR DX,DX ;統計結果清零 XOR BX,BX ;統計結果清零 LEA SI,DATA LEA DI,LEVEL MOV CL,CONT;總人數送循環計數器CX goon: MOV AL,[SI] ;讀原始數據 ADC [DI],AL; 累加總分 ADC [DI+1],0 ;計算進位 CMP AL,90 JLPP8 ;不高于90分者轉PP8 INC DH;90--100分的人數加一 JMP STOR PP8: CMP AL,80 JL PP7 ;不高于80分轉PP7 INC DL ;80----89分的人數加一 JMP STOR PP7: CMP AL,70 JL PP6 ;不高于70分者轉PP6 INCBH ;70---79分的人數加一 JMP STOR PP6: CMP AL,60 JL PP5 ;不高于60分者轉PP5 INCBL ;60---69分的人數加一 JMP STOR PP5: INC AH ;低于60分的人數加一 STOR:INC SI ;讀下一個分數 LOOP GOON ;CX=CX-1,CX不為零轉GOON,繼續統計 LEA SI,BUFFER ;回存統計結果 MOV [SI],DH INC SI MOV [SI],DL INC SI MOV [SI],BH INC SI MOV [SI],BL INC SI MOV [SI],AH MOV AX,WORDPTR[DI] ;計算平均成績 MOV CL,CONT DIV CL MOV LEVEL,AL ;回存平均成績 HLTCONT DB10DATA DB30,65,99,80,75,89,100,45,60,70BUFFERDB?,?,?,?,?LEVEL DB?,?求兩個有符號數(DATA1,DATA2)差的絕對值,結果存入DATA3. ORG 100h MOV AL,DATA1;讀入被減數 SUB AL,DATA2;減去減數 JC CHANGE; JMP STORCHANGE: NEG ALSTOR: MOV DATA3,AL HLT DATA1 DB 3 DATA2 DB 5 DATA3 DB ?3.13存從40000H到4BFFH的個單元均寫入55H,并再逐個讀出,驗證是否一致,假設一致,置AL為7EH,否那么置AL為81H. ORG100h MOV AX,4000H; MOV DS,AX; MOV SI,0 START: MOV CX,0BFFFH BEGIN: MOV [SI],55H MOV AL,[SI] INC SI CMP AL,55H JNZ ERR LOOP BEGIN MOV AL,7EH JMP STOP ERR: MOV AL,81H STOP: HLT 3.14~3.15端口03FBH的BIT5為狀態標志,當該位為1時,表示外設忙,不能接收數據;當為0時,表示外設閑,可以接收數據;當CPU向端口03F8H寫入一個字節的數據時,03FBH的BIT5置1,當它變為0狀態時,又可以寫入下一個數據。據此編寫將起始地址為SEDAT的50個數據輸出到03F8H端口的程序。 WAIT: MOV DX,03FBH IN AL,DX TEST AL,00100000B;〔20H〕 JZ SEND JMP WAIT SEND:MOV DX,3F8H MOV AL,[SI]; CMP AL,0AH;輸出字串結束標志符 JZ STOP OUT DX,AL JMP WAIT STOP:HLT口02E0H的BIT2和BIT5同時為1,表示端口02E7H有一個字節型數據準備好可以用以輸入,當CPU從該端口讀入數據后,02E0端口的BIT2和BIT5就不再同時為1;只有當02E7H端口的數據再次準備好時,它們才會再次同時為1,據此編寫從02E7H端口輸入32個數據然后存入A1000H單元開始的區域。 MOV AX,0A000H MOV DS,AX MOV SI,1000H; 設置存儲區地址 MOV CL,20H; 輸入數據個數BEGIN:MOV DX,0E20H IN AL,DX TEST AL,00100100B; 測試狀態位BIT5、BIT2 JZ BEGIN; 不同時為1繼續測試 MOV DX,02E7H IN AL,DX; 輸入數據 MOV [SI],AL; 存到指定區域 INC SI; 移動地址指針 LOOP BEGIN; 循環 HLT3.17在內存40000H開始的16K的單元中存放著一組數據,將其順序搬移到起始地址為A0000H的區域。解:利用字符串操作指令MOVSB,16K即16*1024=3FFFH。 MOV AX,4000H MOV DS,AX MOV AX,A000H MOV ES,AX MOV SI,0 MOV DI,0 MOV CX,3FFFH CLD REP MOVSBHLT上題的根底上,將兩個區域的數據逐個進行比擬,假設有錯將BL置0,全對將BL置FFH。 MOV AX,4000H MOV DS,AX MOV AX,A000H MOV ES,AX MOV SI,0 MOV DI,0 MOV CX,03FFH CLDAAB: CMPSB JNZ STOP LOOP AABMOV BL,0FFH JMP EX1 STOP: MOV BL,0; EX1:NOP HLT3.19統計由40000H單元開始的16K個單元中所存字符‘A’的個數,統計結果存放在DX存放器中。 MOV AX,4000H MOV DS,AX MOV SI,0; MOV CX,3FFFH; 數據個數 MOV DX,0;統計結果存放器清零XORDX,DX CLDAAB: LODSB CMP AL,‘A’; 比擬 JZ AAC;字符為‘A’轉計數 LOOP AAB; 循環 JMP STOP; 處理完畢轉結束 AAC: INC DX; 統計結果加1 DEC CX; 循環次數減1 JCXNZ AAB; CX<>0繼續 STOP: HLT3.20編寫對AL中的數據進行“偶校驗”的一個過程,并將校驗結果放入AL存放器。 PJY PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,DAT AND AL,AL JNP PJY1 MOV AL,00H; 表示為偶 JMP EXIT PJY1: MOV AL,FFH; 表示為奇 EXIT: POP DX POP CX POP BX POP AX RET PJY ENDP DAT DB?3.21 對80000H開始的256個單元的數據加上偶校驗。 ORG100h MOV AX,8000H MOV DS,AX MOV SI,0 MOV CX,100H CLD PAR0: LODSB;〔MOV AL,[SI];INC SI〕 TEST AL,AL JNP PAR1 LOOP PAR0 JMP STOP PAR1: OR AL,80H; MOV [SI-1],AL DEC CX JNZ PAR0 STOP: HLT某以8088為CPU的微型計算機內存RAM區為00000H~3FFFFH,假設采用6264、62256、2164或21256各需要多片芯片?解答:8088內存單元為8bit,所以,從00000H到3FFFFH,共需要214個byte,共214*8bit,也就是共占用16Kbyte空間。由于各種芯片的數據總線根數不同,所以在連接時要特別注意芯片的位數;對于如下芯片:6264有8根數據線,13根地址線,故其容量為213*8bit,即8Kbyte,所以需要2片;62256有8根數據線,15根地址線,故其容量為215*8bit,即32Kbyte,所以僅需要1片;盡管題目要求只需要16K的空間,但在使用62256時不得不使用1片。2164有8根數據線,12根地址線,故其容量為212*8bit,即4Kbyte,所以需要4片;21256有1根數據線,10根地址線〔實際為20根,分兩組〕,但由于僅有一根數據線,要構成八位的存儲器至少需要8片,但總容量為8*256Bit,遠遠超過題目的要求。利用全地址譯碼將6264接在8088的系統總線上,其所占的地址范圍為BE000H~BFFFFH,試畫出連接圖。解答:6264有13根地址線,連接時接到系統總線的低13位,即A0~A12,其他7根地址線A19~A13的地址譯碼輸入應該為:1011111B,故而有如下的連接:試利用6264芯片,在8088系統總線上實現0000H~03FFFH的內存區域,試畫出電路連接圖。解答:0000H~03FFFH的地址范圍為214=16K,,而6264芯片的容量為8*8K,所以需要連接2片,其中,第一片的地址為00000H~01FFFH,第二片的地址為02000H~03FFFH,這里用74LS138的Y0、Y1作為兩個芯片的片選。表達EPROM的編程過程,說明EEPROM的編程過程。EPROM編程通常采用兩種模式:標準編程和快速編程:標準編程是在VCC、VPP、CE、OE、地址信號、數據信號有效并穩定后參加50毫秒的PGM編程負脈沖,可以在寫入一個數據后使OE變高而立即校驗,也可以在所有數據寫入后逐一校驗。標準編程有兩大缺陷:一是時間過長,比方2764全片編程約需7分鐘,時間過長;再是編程脈沖寬度稍大容易造成芯片因功耗過大而燒毀。快速編程將PGM的寬度減小到100微妙左右,顯然速度加快了500倍左右。能否使用快速編程取決于芯片的型號。EEPROM由于可以在線擦除信息,所以可以單字節編程或自動按頁編程。在單字節寫入時,CE為低,OE為高,在WE參加100納秒的負脈沖,寫入時間包括擦除原有內容和寫入新內容的時間,一般為10毫秒以內,可以通過查詢READY/BUSY的狀態判定。自動按頁編程用高位線決定頁地址,低位線決定頁容量,然后一次寫入一頁內容,寫完后查詢READY/BUSY狀態,此一過程耗時在300微秒左右,所以速度較快。4.5已有兩片6116,現欲將其接到8088系統中去,其地址范圍為40000H~40FFFH,試畫出電路連接圖;寫入某數據并讀出與之比擬,假設有錯,那么在DL中寫入01H,假設全對,在DL中寫入EEH,試編寫此檢測程序。解答:電路連接如圖示:檢測程序定義為一個過程,編程如下:CHKRAM PROCFARPUSH SI;PUSH DL;PUSH CX;PUSH AX; MOV CX,10000H; 待檢驗的單元個數 MOV SI,4000H;存儲體段地址 MOV DS,SI; MOV SI,0000H; 存儲體首地址CHK: MOV AL,0FFH; MOV [SI],AL; 寫入檢驗數據FFH MOV AL,[SI]; 讀出 ADD AL,01H JNZ RAMERR MOVAL,0; MOV [SI],AL; 寫入另一格檢驗數據 MOV AL,[SI]; 讀出 AND AL,AL JNZ RAMERR MOVDL,0EEH; 所有單元全對 JMP RAMCHKOUTRAMERR: MOV DL,01H; 發現錯誤單元RAMCHKOUT: POP AX; POP CX; POPDL; POPSI;RETENDPCHKRAM4.6利用全地址譯碼將EPROM27128接到首地址為A0000H的內存區,試畫出電路圖。解答:EPROM27128的容量為8*16K,所以有14根地址線,那么如果將其接到首地址為A0000H內存區,高6位地址線的排列應該為:101000B,所以有如下的連接:內存地址從40000H到BBFFFH共有多少K?解答:從40000H到BBFFFH的地址空間應該為BBFFFH-40000H=7BFFFH每K為210,即3FFH,7BFFFH/3FFH=1F0H=496D所以,該地址空間的范圍應該為496KByte。試判斷8088系統中存儲器譯碼器74LS138的輸出Y0、Y4、Y6和Y7所決定的內存地址范圍,電路連接見附圖。解答:根據示意圖,A19、A18、A17、A16的電平值為1X00B,由于采用的是局部譯碼〔A18未使用〕,所以每個地址譯碼輸出對應的兩個地址范圍。Y0對應A15、A14、A13均為0,所以其地址范圍應該為:當A18=0時,地址范圍為:1000000000000000~10000001111111111111B即80000H~81FFFH當A18=1時,地址范圍為:1100000000000000~11000001111111111111B即C0000H~C1FFFFHY4對應的A15、A14、A13為100,所以其地址范圍應該為:當A18=0時,地址范圍為:10001000000000000000B~10001001111111111111B即88000H~89FFFH當A18=1時,地址范圍為:11001000000000000000~11001001111111111111B即C8000H~C9FFFHY6對應的A15、A14、A13為110,所以其地址范圍為:當A18=0時,地址范圍為:10001100000000000000B~10001101111111111111B即8C000H~8DFFFH當A18=1時,地址范圍為:11001100000000000000B~11001101111111111111B即CC000H~CDFFFHY7對應的A15、A14、A14為111,所以其地址范圍為:當A18=0時,地址范圍為:10001110000000000000B~10001111111111111111B即8E000H~8FFFFH當A18=1時,地址范圍為:11001110000000000000B~11001111111111111111B即CE000H~CFFFFH。李伯成《微機原理》習題第五章本章作業參考書目:1.王永山等:微型計算機原理與應用西安電子科大出版社19983.洪志全等編《現代計算機接口技術》電子工業出版社2002年4月滿足那些條件8086CPU才能響應中斷源的中斷請求?參考答案:8088/8086的中斷成認需要滿足4個條件:〔1〕一條指令執行之后---因為8088/8086CPU只在指令周期的最后一個時鐘周期檢測INTR信號;〔2〕中斷允許標志IF=1;〔3〕沒有發生NMI、HOLD和RESET;〔4〕指令STI、IREI指令執行之后須再執行一條其他指令,但一些指令組合〔如REP〕要視為一個指令總體。5-2說明8088/8086軟件中斷指令INTn的執行過程。由指令INTn引起的中斷也稱為“異常”,即軟件中斷或內部中斷。這里,INT為指令操作碼,n是中斷類型號〔中斷向量碼〕;當該指令執行時,CPU根據中斷向量碼的數值在中斷向量表〔IDT---InterruptDirectionTable〕找到相應的中斷效勞程序入口地址,在對CS、IP和FLAG進行入棧保護之后,進而轉向指定程序的運行。用三態門74LS244作為輸入接口,接口地址規定為04E5H,試畫出其與8088的總線連接圖。解:根據題意,當地址線上的電平為0000010011100101且IOR信號為低〔IOR低電平有效〕時,74LS244的門控信號E1、E2應該為低,據此畫出以下電路:利用具有三態輸出的鎖存器74LS374作為輸出接口,就接口地址為0E504H,試畫出連接圖。假設5-3題中的輸入接口的BIT3、BIT4、BIT7同時為1時,將DATA為首地址的10個內存數據連續由輸出接口輸出。假設不滿足那么等待,試編寫程序。解:根據題意,當地址線上的電平為1110010100000100且IOW信號為低〔IOW低電平有效〕時,74LS374的時鐘端CP應該為低,而74LS374的OE始終為低,據此畫出以下電路:根據題5-3和題5-4電路,如果題5-3電路中的BIT3、BIT4和BIT7同時為1,那么將以DATA為首地址的10個數據連續由0E504H輸出口輸出,不滿足條件等待,對應的程序段如下: OUTWAIT: MOV DX,04E5H IN AL,DX TEST AL,98H; 10011000B JZ OUTWAIT; MOV SI,OFFSET DATA

溫馨提示

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

評論

0/150

提交評論