李伯成《微型計算機原理及應用》課后習題答案.doc
《李伯成《微型計算機原理及應用》課后習題答案.doc》由會員分享,可在線閱讀,更多相關《李伯成《微型計算機原理及應用》課后習題答案.doc(30頁珍藏版)》請在裝配圖網上搜索。
李伯成《微機原理》習題 第一章 本章作業(yè)參考書目: ① 薛鈞義主編 《微型計算機原理與應用——Intel 80X86系列》 機械工業(yè)出版社 2002年2月第一版 ② 陸一倩 編 《微型計算機原理及其應用(十六位微型機)》 哈爾濱工業(yè)大學出版社 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=150D X=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=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.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.703125D 1.3 將下列十進制整數轉換成二進制數: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 將下列十進制小數轉換成二進制數: (1) X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 將下列十進制數轉換成二進制數 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 將下列二進制數轉換成十進制數 (1) X=1001101.1011B =77.6875D (2) X=111010.00101B= 58.15625D 1.7 將下列二進制數轉換成八進制數 (1) X=101011101B=101’011’101B=535Q (2) X=1101111010010B=1’101’111’010’010B=15722Q (3) X=110B=6Q 1.8 將下列八進制數轉換成二進制數: (1) X=760Q=111'110'000B (2) X=32415Q=11'010'100'001'101B 1.9 將下列二進制數轉換成十六進制數: X=101 0101 1110 1101B= 5 5 E D H X= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9H X= 1000110001B= 10 0011 0001 B= 2 3 1 H 1.10 將下列十六進制數轉換成二進制數: X= ABCH= 1010 1011 1100 B X=3A6F.FFH = 0011 1010 0110 1111.1111 1111B X= F1C3.4B =1111 0001 1100 0011 . 0100 1011B 1.11 將下列二進制數轉換成BCD碼: (1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD (2) X=1010110.001B= 1’010’110.001 =126.1 BCD 1.12 將下列十進制數轉換成BCD碼: (1) X=1024D=0001 0000 0010 0100 BCD (2) X=632 = 0110 0011 0010 BCD (3) X= 103 = 0001 0000 0011 BCD 1.13 寫出下列字符的ASCI I碼: A 41H 65D 0100 0001B 9 39H 47D * 2AH 42D = 3DH 45D ! 21H 33D 1.14 若加上偶校驗碼,下列字符的ASCII碼是什么? 字符 原碼 加上偶校驗碼之后 B 42H, 0100 0010B 42H,0100 0010B 4 34H, 0011 0100B B4H,1011 0100B 7 37H, 0011 0111B B7H,1011 0111B = 3DH,0011 1101B BDH,1011 1101B ! 21H,0010 0001B 21H,0010 0001B ? 3FH 0011 1111B 3FH,0011 1111B 1.15 加上奇校驗,上面的結果如何? 字符 原碼 加上奇校驗碼之后 B 42H, 0100 0010B C2H,1100 0010B 4 34H, 0011 0100B 34H,0011 0100B 7 37H, 0011 0111B 37H,0011 0111B = 3DH,0011 1101B 3DH,0011 1101B ! 21H,0010 0001B A1H,1010 0001B ? 3FH 0011 1111B BFH,1011 1111B 1.16 計算下式: (1)[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D (2) 3CH – [(84D)/(16Q)+’8’/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D= =47D 1.17 對下列十進制數,用八位二進制數寫出其原碼、反碼和補碼: (正數的反碼與原碼相同,負數的反碼除符號位之外其余各位按位取反。正數的補碼與原碼相同;負數的補碼除符號位以外,其余各位按位取反之后再加一。) 數據 原碼 反碼 補碼 +99 0110 0011 0110 0011 0110 0011 -99 1110 0011 1001 1100 1001 1101 +127 0111 1111 0111 1111 0111 1111 -127 1111 1111 1000 0000 1000 0001 +0 0000 0000 0000 0000 0000 0000 -0 1000 0000 1111 1111 0000 0000 1.18 8位二進制數原碼可表示數的范圍是 +127~-128; 8位二進制數補碼可表示的數的范圍是 +127~-127; 8位二進制數反碼可表示的數的范圍是:+127~-128; 1.19 16位二進制數的原碼、補碼、反碼可表示的數的范圍是多少? +32767~-32768、+32767~-32768、+32767~-32768; 1.20 至少寫出3種用二進制編碼狀態(tài)表示十進制數字的編碼方式。 8421碼、 5421碼 2421碼 余3碼 十進制數 0000 0000 0000 0011 0 0001 0001 0001 0100 1 0010 0010 1000 0101 2 0011 0011 1001 0110 3 0100 0100 1010 0111 4 0101 1000 1011 1000 5 0110 1001 1100 1001 6 0111 1010 1101 1010 7 1000 1011 1110 1011 8 1001 1100 1111 1100 9 李伯成《微機原理》習題 第二章 ① 薛鈞義主編 《微型計算機原理與應用——Intel 80X86系列》 機械工業(yè)出版社 2002年2月第一版 ② 陸一倩 編 《微型計算機原理及其應用(十六位微型機)》 哈爾濱工業(yè)大學出版社 1994年8月第四版 ③ 王永山等 編 《微型計算機原理與應用》 西安電子科技大學出版社 2000年9月 ④洪志全等 編 《現(xiàn)代計算機接口技術》 電子工業(yè)出版社 2002年4月 ⑤仇玉章主編 《32位微型計算機原理與接口技術》 清華大學出版社 2000年9月 2.1 8086CPU的RESET引腳的功能是什么? 答:RESET引腳稱為復位引腳,輸入、三態(tài)、高電平有效;RESET引腳將使CPU立即結束當前操作,處理器要求RESET信號至少要保持4個時鐘周期的高電平,才能結束它正在進行的操作。CPU復位以后,除了代碼段寄存器CS的值為FFFFH外,其余所有寄存器的值均為零,指令隊列為空。 當RESET回到低電平時,CPU開始執(zhí)行“熱啟動”程序,由于此時CS的值為FFFFH,IP的值為0000H,所以CPU復位以后執(zhí)行的第一條指令的物理地址為 FFFF0H,該單元通常放置一條段間直接轉移指令JMP SS:OO,SS:OO即為系統(tǒng)程序的實際起始地址。 2.2 在8086 CPU 工作在最小模式時, (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引腳外其余所有的信號引腳均為高阻態(tài)。 2.3 略 2.4 說明8086 CPU READY 信號的功能。 見 P23 2.5 8086 CPU 的NMI和INTR引腳的不同有幾點? 兩點: (1) INTR是可以由用戶用指令禁止的,(通過中斷允許標志IF的開---STI和關CLI進行);而NMI不能由用戶禁止; (2) INTR是可以區(qū)分優(yōu)先級別的,NMI是最高級的,沒有中斷優(yōu)先級的排隊。 2.6 說明8086CPU內部標志寄存器各位的含義。 8086 CPU的標志寄存器(PSW或FLAG)共有9個標志位,分別是: CF (Carry Flag)--- 進位或借位標志; PF (Parity Flag)--- 奇偶標志; AF (auxiliary Flag)----半進位標志; ZF (Zero Flag) -----結果為零標志; SF (Sign Flag) ----- 符號標志; OF (Overflow Flag)-----溢出標志; IF (Interrupt Enable Flag)-----中斷允許標志; DF (Direction Flag) ---- 方向標志; TF (Trap Flag) ----- 陷阱標志。 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工作狀態(tài)或者控制CPU工作方式的標志寄存器。 2.8 試畫出8086CPU工作在最小模式時的總線形成示意圖。 (注:BHE*引腳為34腳---即SS0,參見P25狀態(tài)編碼表) 四點說明: A、MN/MX端接+5V,決定了8086工作在最小模式。 B、有一片8234A,作為 時鐘發(fā)生器。 C、有三片8282或74LS373,用來作為 地址鎖存器。 D、當系統(tǒng)中所連接的存儲器和外設比較多時,需要增加系統(tǒng)數據總線的驅動能力, 這時,要用兩片8286/8287(74LS244或74LS245)作為 總線收發(fā)器。 2.9 8086/8088為什么采用地址/數據引線復用技術? 答:考慮到芯片成本,8086/8088采用40條引線的封裝結構。40條引線引出8086/8088的所有信號是不夠用的,采用地址/數據線復用引線方法可以解決這一矛盾,從時序邏輯的角度,地址與數據信號不會同時出現(xiàn),二者可以分時復用同一組引線。 2.10 怎樣確定8086的最大或最小工作模式?最大、最小模式產生控制信號的方法有何不同? 答:引線MN/MX*的邏輯狀態(tài)決定8086的工作模式,MN/MX*引線接高電平,8086被設定為最小模式;MN/MX*引線接低電平,8086被設定為最大模式。最小模式下所有的控制信號由CPU相關引線直接提供;最大模式下控制信號由8288專用芯片譯碼后提供,8288的輸入由8086的S2─S0三條狀態(tài)信號引線提供。 李伯成《微機原理》習題 第三章 本章作業(yè)參考書目: 1.周明德: 微型計算機IBM-PC系統(tǒng)原理與應用 清華大學出版社 1991 2.王永山等: 微型計算機原理與應用 西安電子科大出版社 1998 3.張懷蓮: IBMPC匯編語言程序設計 電子工業(yè)出版社 1990 注:本習題解中的程序僅為代碼片段,可在Emu8086 version 2.57環(huán)境下仿真運行,如果在MASM下進行匯編,需添加段設置以及相應的偽指令。 3.1 MOV AX,00H; 立即尋址 SUB AX,AX; 寄存器尋址 MOV AX,[BX]; 寄存器間接尋址 MOV AX,TABLE; 直接尋址 MOV AL,ARAY1[SI]; 寄存器相對尋址 MOV AX,[BX+6]; 寄存器相對尋址 3.2 若1KB的數據存放在TABLE以下,試編寫程序將該數據拌到NEXT之下。 程序片段如下: ORG 100h MOV CX,03FFH;數據個數 LEA SI,TABLE;源區(qū)首地址 LEA DI,NEXT; 目的區(qū)首地址 AGAIN: MOV AL,[SI]; MOV [DI],AL; 搬移 INC SI INC DI; 移動地址指針 DEC CX; 循環(huán)計數器遞減 JNZ AGAIN; 循環(huán)未結束轉 HLT; 暫停 TABLE DB 1024 dup ('A'); 源數據區(qū) NEXT DB 1024 dup (0); 目的數據區(qū) 3.3 編寫10個字(16位二進制數)之和的程序 ORG 100h LEA SI,ADD1; LEA DI,ADD2; LEA BX,SUM; MOV CL,CONT; MOV CH,0; 循環(huán)初始化 CLC; 進位清零 MADD1: MOV AX,[SI]; 讀加數1 ADC AX,[DI] ADD SI,2; 移動源區(qū)地址指針 ADD DI,2; 移動目的區(qū)地址指針 MOV [BX],AX; 回存計算結果 ADD BX,2; 移動“和”存儲區(qū)地址指針 LOOP MADD1; 循環(huán)控制 HLT; 暫停 ADD1 DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加數1 ADD2 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加數2 SUM DB 10 DUP (0); 和存儲單元 CONT DB 5 ; 循環(huán)次數 3.4 某16位二進制數,放在DATA連續(xù)的兩個單元中,試編程求其平方根和余數,將其分別存放在ANS和REMAIN中。 ORG 100h MOV BL,2; 除數初值 AGAIN: MOV CX,NUM; 預計最大循環(huán)次數 MOV AL,BL; 0、1的平方根除外 MUL BL; 得到2的平方 CMP AX,CX; 大于原始數據么? JG EXIT; 若原始數據小于4轉EXIT MOV AX,CX; 讀數 DIV BL; 試除 INC BL; 除數遞增 JMP AGAIN; 繼續(xù)除 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; 循環(huán)次數 MOV SI,OFFSET ASCBIN CLD XOR AX,AX XOR DX,DX ASCB1: LODSB AND AL,7FH CMP AL,'0' ;不大于‘0’結束轉換 JL ERR CMP AL,'9' JG ASCB2 ;大于‘9’轉ASCB2 SUB AL,30H ; 數字形式二進制數減30H JMP ASCB3 ASCB2: CMP AL,'A' ;大于‘9’又小于‘A’結束轉換 JL ERR CMP AL,'F' JG ERR ;大于‘F’為不合理數,結束轉換 SUB AL,37H ;字符形式ASCII數減37H ASCB3: OR DL,AL ROL DX,CL DEC CH JNZ ASCB1 ROL DX,CL MOV BIN,DX;存儲轉換結果 ERR: NOP HLT ASCBIN DB '1','B,'4','3' BIN DW ? 3.7 編寫程序將MOLT中的一個8位數乘以20,乘積放在ANS中(用3種方式)。 解:第一種方法:常規(guī)乘法運算 ORG 100h MOV AL,MOLT MOV BL,20 MUL BL MOV ANS,AX HLT MOLT DB 2 ANS DW ? 第二種方法,將MOLT連加20次 ORG 100h MOV CX,20 MOV BX,MOLT XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANS DW ? 第三種方法,將“20”連加MOLT次 ORG 100h MOV CX,MOLT MOV BX,20 XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANS DW ? 3.8 在DATA之下存放100個無符號的8位數,找出其最大者并將其存放在KVFF單元。 ORG 100h 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 BUFFER DB ;自行定義100個數據 KVFF DB ? 3.9 若將數據按大小順序排序,試編寫程序.. 解:此處采用 “冒泡法”予以處理: ORG 100h LEA DI,BUFFER; 數據區(qū) MOV BL,99; 外循環(huán)次數 NEXT0: MOV SI,DI; MOV CL,BL; 內循環(huán)次數 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; 內循環(huán)次數減一 JNZ NEXT3; DEC BL; 外循環(huán)次數減一 JNZ NEXT0 HLT BUFFER DB 自行定義100個字節(jié)型數據 3.10 在BVFF單元中有一個BCD數A,試根據下列關系編寫程序,計算結果存在DES中. A<20,Y=3*A; A<60,Y=A-20; A>=60,Y=80. ORG 100h 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 DB 8 DES DB ? 3.11址為DATAB開始的80個單元中,存放某班80個學生的某課程成績,要求: 統(tǒng)計>=90分、80~89分、70~79分、60~69分、60分以下的人數,結果存放在BTRX開始的5個單元中 求平均成績,結果存放在LEVEL中。 解:寄存器使用分配:90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,總分、均分都在[DI]。 ORG 100h XOR AH,AH XOR DX,DX ;統(tǒng)計結果清零 XOR BX,BX ;統(tǒng)計結果清零 LEA SI,DATA LEA DI,LEVEL MOV CL,CONT; 總人數送循環(huán)計數器 CX goon: MOV AL,[SI] ;讀原始數據 ADC [DI], AL; 累加總分 ADC [DI+1],0 ;計算進位 CMP AL,90 JL PP8 ; 不高于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 INC BH ;70---79分的人數加一 JMP STOR PP6: CMP AL,60 JL PP5 ;不高于60分者轉PP5 INC BL ;60---69分的人數加一 JMP STOR PP5: INC AH ;低于60分的人數加一 STOR: INC SI ;讀下一個分數 LOOP GOON ;CX=CX-1,CX不為零轉GOON,繼續(xù)統(tǒng)計 LEA SI,BUFFER ;回存統(tǒng)計結果 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,WORD PTR [DI] ;計算平均成績 MOV CL,CONT DIV CL MOV LEVEL,AL ;回存平均成績 HLT CONT DB 10 DATA DB 30,65,99,80,75, 89,100,45,60,70 BUFFER DB ?,?,?,?,? LEVEL DB ? ,? 3.12 求兩個有符號數(DATA1,DATA2)差的絕對值,結果存入DATA3. ORG 100h MOV AL,DATA1;讀入被減數 SUB AL,DATA2;減去減數 JC CHANGE; JMP STOR CHANGE: NEG AL STOR: MOV DATA3,AL HLT DATA1 DB 3 DATA2 DB 5 DATA3 DB ? 3.13 存從40000H到4BFFH的個單元均寫入55H,并再逐個讀出,驗證是否一致,若一致,置AL為7EH,否則置AL為81H. ORG 100h 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為狀態(tài)標志,當該位為1時,表示外設忙,不能接收數據;當為0時,表示外設閑,可以接收數據;當CPU向端口03F8H寫入一個字節(jié)的數據時,03FBH的BIT5置1,當它變?yōu)?狀態(tài)時,又可以寫入下一個數據。據此編寫將起始地址為SEDAT的50個數據輸出到03F8H端口的程序。 WAIT: MOV DX,03FBH IN AL,DX TEST AL,0010 0000B;(20H) JZ SEND JMP WAIT SEND:MOV DX,3F8H MOV AL,[SI]; CMP AL,0AH;輸出字串結束標志符 JZ STOP OUT DX,AL JMP WAIT STOP:HLT 3.16 口02E0H的BIT2和BIT5同時為1,表示端口02E7H有一個字節(jié)型數據準備好可以用以輸入,當CPU從該端口讀入數據后,02E0端口的BIT2和BIT5就不再同時為1;只有當02E7H端口的數據再次準備好時,它們才會再次同時為1,據此編寫從02E7H端口輸入32個數據然后存入A1000H單元開始的區(qū)域。 MOV AX,0A000H MOV DS,AX MOV SI,1000H; 設置存儲區(qū)地址 MOV CL,20H; 輸入數據個數 BEGIN:MOV DX,0E20H IN AL,DX TEST AL,0010 0100B; 測試狀態(tài)位 BIT5、BIT2 JZ BEGIN; 不同時為1繼續(xù)測試 MOV DX,02E7H IN AL,DX; 輸入數據 MOV [SI],AL; 存到指定區(qū)域 INC SI; 移動地址指針 LOOP BEGIN; 循環(huán) HLT 3.17 在內存40000H開始的16K的單元中存放著一組數據,將其順序搬移到起始地址為A0000H的區(qū)域。 解:利用字符串操作指令 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 MOVSB HLT 3.18 上題的基礎上,將兩個區(qū)域的數據逐個進行比較,若有錯將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 CLD AAB: CMPSB JNZ STOP LOOP AAB MOV BL,0FFH JMP EX1 STOP: MOV BL,0; EX1: NOP HLT 3.19 統(tǒng)計由40000H單元開始的16K個單元中所存字符‘A’的個數,統(tǒng)計結果存放在DX寄存器中。 MOV AX,4000H MOV DS,AX MOV SI,0; MOV CX,3FFFH; 數據個數 MOV DX,0;統(tǒng)計結果寄存器清零 XOR DX,DX CLD AAB: LODSB CMP AL,‘A’; 比較 JZ AAC;字符為‘A’轉計數 LOOP AAB; 循環(huán) JMP STOP; 處理完畢轉結束 AAC: INC DX; 統(tǒng)計結果加1 DEC CX; 循環(huán)次數減1 JCXNZ AAB; CX<>0繼續(xù) STOP: HLT 3.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,F(xiàn)FH; 表示為奇 EXIT: POP DX POP CX POP BX POP AX RET PJY ENDP DAT DB ? 3.21 對80000H開始的256個單元的數據加上偶校驗。 ORG 100h 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 4-1 某以8088為CPU的微型計算機內存RAM區(qū)為00000H ~3FFFFH,若采用6264、62256、2164或21256各需要多片芯片? 解答: 8088 內存單元為8 bit,所以,從00000H 到3FFFFH,共需要214 個byte,共214*8bit,也就是共占用16K byte空間。由于各種芯片的數據總線根數不同,所以在連接時要特別注意芯片的位數; 對于如下芯片: 6264 有8根數據線,13根地址線,故其容量為 213*8bit,即8Kbyte, 所以需要2片; 62256 有8根數據線,15根地址線,故其容量為 215*8bit,即32 Kbyte, 所以僅需要1片;盡管題目要求只需要16K的空間,但在使用62256時不得不使用1片。 2164 有8根數據線,12根地址線,故其容量為 212*8bit,即4Kbyte, 所以需要4片; 21256 有1根數據線,10根地址線(實際為20根,分兩組),但由于僅有一根數據線,要構成八位的存儲器至少需要8片,但總容量為8*256Bit,遠遠超過題目的要求。 4.2 利用全地址譯碼將6264接在8088的系統(tǒng)總線上,其所占的地址范圍為BE000H~BFFFFH,試畫出連接圖。 解答:6264有13根地址線,連接時接到系統(tǒng)總線的低13位,即A0~A12, 其他7根地址線A19~A13的 地址譯碼輸入應該為:1011 111 B,故而有如下的連接: 4.3 試利用6264 芯片,在8088系統(tǒng)總線上實現(xiàn)0000H~03FFFH的內存區(qū)域,試畫出電路連接圖。 解答:0000H~03FFFH的地址范圍為214=16K, ,而6264芯片的容量為8*8K, 所以需要連接2片,其中,第一片的地址為00000H~01FFFH,第二片的地址為02000H~03FFFH,這里用74LS138的Y0、Y1 作為兩個芯片的片選。 4.4 敘述EPROM的編程過程,說明EEPROM的編程過程。 EPROM編程通常采用兩種模式:標準編程和快速編程: 標準編程是在VCC、VPP、CE、OE、地址信號、數據信號有效并穩(wěn)定后加入50毫秒的PGM編程負脈沖,可以在寫入一個數據后使OE變高而立即校驗,也可以在所有數據寫入后逐一校驗。 標準編程有兩大缺陷:一是時間過長,比如2764全片編程約需7分鐘,時間過長;再是編程脈沖寬度稍大容易造成芯片因功耗過大而燒毀。 快速編程將PGM的寬度減小到100微妙左右,顯然速度加快了500倍左右。 能否使用快速編程取決于芯片的型號。 EEPROM 由于可以在線擦除信息,所以可以單字節(jié)編程或自動按頁編程。 在單字節(jié)寫入時,CE為低,OE為高,在WE加入100納秒的負脈沖,寫入時間包括擦除原有內容和寫入新內容的時間,一般為10毫秒以內,可以通過查詢READY/BUSY的狀態(tài)判定。 自動按頁編程用高位線決定頁地址,低位線決定頁容量,然后一次寫入一頁內容,寫完后查詢READY/BUSY狀態(tài),此一過程耗時在300微秒左右,所以速度較快。 4.5已有兩片6116,現(xiàn)欲將其接到8088系統(tǒng)中去,其地址范圍為40000H~40FFFH,試畫出電路連接圖;寫入某數據并讀出與之比較,若有錯,則在DL中寫入01H,若全對,在DL中寫入EEH,試編寫此檢測程序。 解答:電路連接如圖示: 檢測程序定義為一個過程,編程如下: CHKRAM PROC FAR PUSH 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 MOV AL,0; MOV [SI],AL; 寫入另一格檢驗數據 MOV AL,[SI]; 讀出 AND AL,AL JNZ RAMERR MOV DL,0EEH; 所有單元全對 JMP RAMCHKOUT RAMERR: MOV DL, 01H; 發(fā)現(xiàn)錯誤單元 RAMCHKOUT: POP AX; POP CX; POP DL; POP SI; RET ENDP CHKRAM 4.6 利用全地址譯碼將EPROM27128接到首地址為A0000H的內存區(qū),試畫出電路圖。 解答:EPROM27128 的容量為8* 16K,所以有14根地址線, 那么如果將其接到首地址為A0000H 內存區(qū),高6位地址線的排列應該為:1010 00B,所以有如下的連接: 4.7 內存地址從40000H到BBFFFH共有多少K? 解答:從40000H到BBFFFH的地址空間應該為 BBFFFH-40000H= 7BFFFH 每K為210,即3FFH,7BFFFH/3FFH=1F0H=496D 所以,該地址空間的范圍應該為496KByte。 4.8 試判斷8088系統(tǒng)中存儲器譯碼器74LS138的輸出Y0、Y4、Y6和Y7所決定的內存地址范圍,電路連接見附圖。 解答: 根據示意圖,A19、A18、A17、A16 的電平值為 1X00B,由于采用的是部分譯碼(A18未使用),所以每個地址譯碼輸出對應的兩個地址范圍。 Y0對應 A15、A14、A13 均為0,所以其地址范圍應該為: 當A18=0時,地址范圍為: 1000 0000 0000 0000 ~ 1000 0001 1111 1111 1111 B 即80000H~ 81FFFH 當 A18=1時,地址范圍為: 1100 0000 0000 0000 ~ 1100 0001 1111 1111 1111B 即C0000H~ C1FFFFH Y4 對應的 A15、A14、A13 為 100,所以其地址范圍應該為: 當A18=0 時,地址范圍為: 1000 1000 0000 0000 0000B~ 1000 1001 1111 1111 1111B 即88000H~ 89FFFH 當A18=1時,地址范圍為: 1100 1000 0000 0000 0000 ~1100 1001 1111 1111 1111B 即C8000H~C9FFFH Y6 對應的A15、A14、A13 為110,所以其地址范圍為: 當A18=0時,地址范圍為: 1000 1100 0000 0000 0000B~ 1000 1101 1111 1111 1111B 即 8C000H~ 8DFFFH 當A18=1 時,地址范圍為: 1100 1100 0000 0000 0000 B~ 1100 1101 1111 1111 1111B 即CC000H~CDFFFH Y7 對應的A15、A14、A14為111,所以其地址范圍為: 當 A18=0時,地址范圍為: 1000 1110 0000 0000 0000B~ 1000 1111 1111 1111 1111B 即 8E000H~ 8FFFFH 當 A18=1 時,地址范圍為: 1100 1110 0000 0000 0000B~ 1100 1111 1111 1111 1111 B 即CE000H~CFFFFH。 李伯成《微機原理》習題 第五章 本章作業(yè)參考書目: 1. 王永山等: 微型計算機原理與應用 西安電子科大出版社 1998 3. 洪志全等 編 《現(xiàn)代計算機接口技術》 電子工業(yè)出版社 2002年4月 5-1 滿足那些條件8086CPU才能響應中斷源的中斷請求? 參考答案: 8088/8086的中斷承認需要滿足4個條件: (1) 一條指令執(zhí)行之后---因為8088/8086CPU只在指令周期的最后一個時鐘周期檢測INTR信號; (2) 中斷允許標志IF=1; (3) 沒有發(fā)生 NMI、HOLD和RESET; (4) 指令STI、IREI指令執(zhí)行之后須再執(zhí)行一條其他指令,但一些指令組合(如REP)要視為一個指令總體。 5-2 說明8088/8086 軟件中斷指令INT n的執(zhí)行過程。 由指令INT n引起的中斷也稱為“異?!?,即軟件中斷或內部中斷。這里,INT 為指令操作碼,n 是中斷類型號(中斷向量碼);當該指令執(zhí)行時,CPU 根據中斷向量碼的數值在中斷向量表(IDT---Interrupt Direction Table)找到相應的中斷服務程序入口地址,在對CS 、IP和FLAG進行入棧保護之后,進而轉向指定程序的運行。 5-3 用三態(tài)門 74LS244 作為輸入接口,接口地址規(guī)定為04E5H,試畫出其與8088的總線連接圖。 解:根據題意,當地址線上的電平為 0000 0100 1110 0101 且IOR信號為低(IOR低電平有效)時,74LS244的門控信號E1、E2應該為低,據此畫出下列電路: 5-4 利用具有三態(tài)輸出的鎖存器74LS374 作為輸出接口,就接口地址為0E504H,試畫出連接圖。若5-3題中的輸入接口的BIT3、BIT4、BIT7同時為1時,將DATA為首地址的10個內存數據連續(xù)由輸出接口輸出。若不滿足則等待,試編寫程序。 解:根據題意,當地址線上的電平為 1110 0101 0000 0100 且IOW信號為低(IOW低電平有效)時,74LS374的時鐘端CP 應該為低,而 74LS374的OE始終為低,據此畫出下列電路: 根據題5-3和題5-4 電路,如果題5-3電路中的BIT3、BIT4 和BIT7 同時為1,則將以DATA為首地址的10個數據連續(xù)由0E504H輸出口輸出,不滿足條件等待,對應的程序段如下: OUTWAIT : MOV DX,04E5H IN AL,DX TEST AL,98H; 10011000B JZ OUTWAIT; MOV SI,OFFSET DATA MOV CL,0AH; 數據個數 MOV DX,0E504H OUTPUT: MOV AL,SI IN- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 微型計算機原理及應用 李伯成 微型計算機 原理 應用 課后 習題 答案
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-1727561.html