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