微機(jī)原理與接口技術(shù)程序設(shè)計_第1頁
微機(jī)原理與接口技術(shù)程序設(shè)計_第2頁
微機(jī)原理與接口技術(shù)程序設(shè)計_第3頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程序設(shè)計題1、統(tǒng)計從01000H內(nèi)存單元開始的100個字WORD型帶符號數(shù)中的正數(shù),負(fù)數(shù) 和零的字(WORD個數(shù)?解:設(shè)正數(shù)個數(shù)存放于BX中,負(fù)數(shù)個數(shù)存放于DI中,零的個數(shù)存放于DX中MOVAX ,0100HJZ ZEROMOV DS ,AXJL NEGATMOVBX ,0INC BXMOVDX ,0JMP NEXT1MOV DI,0ZERO :INC DXMOV SI,0JMP NEXT1MOVCX ,100NEGAT:INC DINEXT: MOV AXSINEXT1 :ADD SI, 2CMP AX ,0LOOP NEXT2、實現(xiàn)兩個十六位二進(jìn)制的加法,要求加數(shù)放在FIRST開始單元,被

2、加數(shù)放在SECONDS始單元,和數(shù)放在SUM單元解:MOV AX,FIRSTADD AX,SECONDMOV SUM,AX3從BUFF單元起有一個字符串(長度小于65535),以'*'完畢,編寫一個完整程 序求該字符串長度存入LENT單元,并統(tǒng)計字符串中含有大寫英文字符的個數(shù)并 存入COUNTS元。要求源程序具備必要的偽指令和段說明。1. DATASEGMENTINCCXBUFF DB 'ABCD .*'CMP AL,'A'LENT DW ?JCNEXTCOUNT DW ?CMP AL,'Z'DATAENDSJNCNEXTCODE

3、SEGMENTINCDXASSUME CS DATA:CODE DSNEXTINCBXSTART MOV AXDATAJMPLPMOV DS ,AXDONEINCCXLEA BX,BUFFMOVLENT, CXMOV CX ,0MOVCOUNT DXMOV DX ,0MOVAH 4CHLP:MOV AL,BXINT21HCMP AL, '*'CODE ENDSJZ DONEEND START4 有一帶符號8位數(shù)X存于DAT單元編一個程序段判斷該數(shù),假如 x小于0 如此將0FFH送MAR!單元;假如X等于0如此將MARK+單元置0FFH假如X大 于0如此置MARK+單元為0FFH

4、MOV AL,DATAND AL,ALJS LP1JZ LP2MOV MARK+20FFH5 有X、Y、Z三個字變量,存放無符號整數(shù), X+Y /X-Y+600不考慮溢出情況DSEG SEGMENTX DW ?Y DW ?Z DW ?DSEG ENDSCSEG SEGMENTDIV BXASSUME CSCSEG DS DSEGMAIN PROC FARBEGIN: MOV AX,DSEGMOV DS ,AXMOVBX , XJMP DONELPl : MOV MARJK0FFHJMP DONELP2:MOV MARK+10FFHDONE HLT請編一個完整的程序?qū)崿F(xiàn)公式Z=SUB BX YA

5、DD BX 600MOV AX XADD AX YMOV DX 0MOV Z AXMOV AH 4CHINT 21HMAIN ENDPCSEG ENDSEND BEGIN6. AX存放器中存放著4位十六進(jìn)制數(shù)。試編寫一個匯編語言程序,將這 4位十 六進(jìn)制數(shù)分別轉(zhuǎn)換為相應(yīng)的ASCII碼,并依次存放到RESULT數(shù)組的4個字節(jié)中 去,要求用調(diào)用子程序的方法實現(xiàn)。CODE SEGMENTHASC PROC NEARASSUME CS:CODE,DS:CODEMOV DL,ALSTART: MOV BX,CODEAND DL,0FHMOV DS,BXCMP DL,9MOV CL,4JA L2MOV B

6、L,4ADD DL,30HMOV SI,OFFSET RESULTL1 RETLP: CALL HASCL2: ADD DL,37HMOV SI,DLJMP L1INC SIHASC ENDPSHR AX,CLRESULT DB 4 DUPDEC BLCODE ENDSJNZ LPEND STARTEXIT: MOV AH,4CHINT 21H7 寫出對存放在DX和AX中的雙字長數(shù)求補(bǔ)的指令序列。方法1方法2方法3MOV CX,0NOT AXNEG DXSUB CX,AXNOT DXNEG AXMOV AX,CXADD AX,1SBB DX,0MOV CX, 0ADC DX,0SBB CX,

7、DXMOV DX, CX8設(shè)有兩個等長字符串。試編寫一個匯編語言程序,比擬它們是否完全一樣; 假如一樣,如此將字符"Y"送入AL中,否如此,將字符"N"送入AL中。CODE SEGMENTREPE CMPSBSTART: MOV AX,CODEASSUME CS:CODE,DS:CODEJNZ NEMOV AL,'Y'JMP EXITMOV DS,AXMOVES AXCLDLEA SI , STRING1LEA DI , STRING2MOV CX DISUB CX, SIXOR AX, AXNE: MOV AL,'N'E

8、XIT: MOV AH,4CHINT 21HSTRING1 DB'STRING2 DB'CODE ENDSEND STARTMOV CL 4SHR DX,CLSHR AX ,CLSHL BL,CLMOV BL ,DLOR AH,BL9 寫出程序段,把DX AX中的雙字右移四位9編寫一個完整的8086匯編語言程序,從附加段中首地址為 連續(xù)存放的100個字型無符號整數(shù)中找出最大數(shù),入變量 MAX和MAXM中DATA SEGMENTADR1 DW 100 DUPMAX DW ?MAXM DW ?DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATA,ES

9、:DATAMAINPROC FARMOV AX,DATAMOV ES,AXMOV SI,OFFSET ADR1MOV CX,100MOV ES:MAXM,SIADR變量名并將此數(shù)與其偏移地址分別放MOV AX,ES:SILOP1: CMP AX,ES:SIJAE LOP3MOV AX,ES:SIMOV ES:MAXM,SILOP3: ADD SI,2LOOP LOP1MOV ES:MAX,AXMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN10. (AX)=4BD5H統(tǒng)計AX中1的個數(shù)和0的個數(shù),并分別放在 BL和DL中。編 寫程序段實現(xiàn)該功能。MOV A

10、X,4BD5H INC DLMOV BL,0MOV DL,0MOV CX,16L1: SHL AX,1JC L2JMP L3L2:INC BLL3: LOOP L1HLT11 有一個首地址為ARRAY勺N個字的數(shù)組,請編程序使該數(shù)組中的數(shù)按照從大 到小的次序排序。采用冒泡排序算法DATA SEGMENTARRAY DW A1,A2,A3,ANDATA ENDSPROG SEGMENTASSUME DS:PROG,DS:DATAMAIN PROC FARSTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV CX,NDEC CXLOOP1:MOV

11、 DI,CXMOV BX,0LOOP2: MOV AX,ARRAYBXCMPAX,ARRAYBX+2JGE CONTINUEXCHGAX,ARRAYBX+2MOV ARRAYBX,AXCONTINUE: ADD BX,2LOOPLOOP2MOV CX,DILOOP LOOP1RETMAIN ENDPPROGENDSEND START存儲器設(shè)計應(yīng)用題1 .有 SRAMS片 6225632KX 8與 EPROI芯片 2725632KX 8,現(xiàn)用這兩種芯 片構(gòu)成8088最小系統(tǒng)內(nèi)存的一局部,其中SRAM所占的地址空間為 40000H-47FFFH,EPRO所占的地址空間為 F8000H-FFFFFH

12、試設(shè)計出其原理圖。2.給8088CPI系統(tǒng)擴(kuò)展32K的ROM且所選用的存儲器芯片為 8KX 8,地址譯碼 器為74LS138, ROM勺地址X圍從60000HH存儲器芯片為8KX 8,可知芯片容量 為8K,地址線為13條,數(shù)據(jù)線為8條,而系統(tǒng)要求容量為32K,位數(shù)是8,因 此為字?jǐn)U展。需要的芯片為4個存儲器芯片的地址為:1、地址譯碼器:3個輸入端的信號中必須有:A13, A14,其對應(yīng)的位置不 同,輸出的引腳也不同。只要輸入信號與輸出信號一致,且連接到相應(yīng)的存 儲器芯片上。2、數(shù)據(jù)線連接正確3、地址線連接正確67FFFH要求寫出每一個存儲器芯片的地址 X圍,畫出邏輯連線圖。OE100aH-E1

13、7FFH0E1G0GH-EL7FFHcli£clr5dl3-4 &5111 11 aaaa aaa aa偶地址奇地址HR3 .設(shè)某系統(tǒng)的CPU有 16根地址線A15-A0、8根數(shù)據(jù)線D7-DC。現(xiàn)需擴(kuò)展6KB的 ROM地址X圍為:0000H-17FFH采用2716芯片。(1) 請寫出存儲器器件2716的數(shù)據(jù)線和地址線的條數(shù);2計算ROM勺芯片數(shù)量;3設(shè)計存儲器擴(kuò)展原理圖,并寫出每片 ROM勺地址X圍 1存儲器2716的數(shù)據(jù)線有8條,地址線有11條。2丨因為2716的容量為2KB,要擴(kuò)展6KB,所以需要三片。3原理圖如下:DOD?cCl 13B 麺¥ t2B說DC-*

14、I7二 AOAL 0 二-OE-2716一瓦OOOOII-07FFHDOD?AO-Al 0 2716CSLODT hO-'AIOOE271b0800H-0FFTII 1000H-17FFH4. RAM芯片結(jié)構(gòu)如下列圖,回答如下冋題:1該芯片容量為多少?假如要求構(gòu)成一個 2KX 8的RAM車"匸上;*列,需幾個這樣的芯片? 42假如RAM車列組的起始地址為E1OOOH畫出存儲器系統(tǒng)i與8086的電路連接圖8086工作在最小模式,并寫出每組RAM 芯片的地址空間。3編程:將緩沖區(qū)中的10個數(shù)據(jù)寫進(jìn)E1000開始的10個單元中,并說明如何查看結(jié)果?D0-D3D4-D7miD12-D

15、15ALIu陽JA.14驚=csP與或I-威DOD3AQ-A9AD-A9IRC5D0-D3AD-JLPM>-t3 AO-A 9urpVSCSir ji%CSOE100DHE17ETHBHEOEIOOOH-ELTFFH帰也址奇地址MOV AX 0E100HMOV CX , 10MOV ES , AXCLDMOV S, OFFSET BUF REP MOVSBMOV DI , O查看結(jié)果 D E100: 05 設(shè)某微機(jī)系統(tǒng)需要擴(kuò)展內(nèi)存 RAM 32KB擴(kuò)大的存儲器空間為10000H開始的 連續(xù)存儲區(qū)域。存儲器芯片采用 16KX 8的RAMS片,CPU使用8088。1丨選用芯片,畫出邏輯連接圖

16、;2丨寫出各片RAM勺所在地址區(qū)域。答案:2)地址X圍 第一片10000H-13FFFH第二片 14000H-17FFFHDD-D7A0-A13D8 1Al?c Y1A16G138A180A19CC2BI0VPO-DTD 0-1)7A0-A13AUAlJW°E 16K#8WQElfiK*8CS RAMC5 JUJI6 .用4KX 4的EPROI存儲器芯片組成一個16KX 8的只讀存儲器。試問:(1) 該只讀存儲器的數(shù)據(jù)線和地址線的位數(shù)。(2) 根據(jù)題意需要多少個4KX 4的EPRO芯片?(3) 畫出此存儲器的組成框圖。答案:(1)該存儲器有14位地址線和8位數(shù)據(jù)線。nA At 齡岸1

17、3K F>ROM4KX4*J,IKX47共需總芯片數(shù)為8片。8255編程題1. 一個8088系統(tǒng)中有一 8255A, 8255A各口設(shè)置如下:A組與B組均工作于方式0, A 口為數(shù)輸入,B 口為輸出,C 口高位局部為輸出,低位局部為輸入,A 口地址設(shè)為40H=1) 寫出工作方式控制字2) 對8255A初始化3) 從A 口輸入數(shù)據(jù),將其取反后從 B 口送出1) 10010001B 即 91H2) MOV AL 91H; OUT 43H, AL3) IN AL,40H; NOT AL ; OUT 41H,AL2. 設(shè)8255A的4個尋址地址號為0060H0063H試編寫如下各種情況下的初始化

18、 程序。1) 將A組和B組設(shè)置成方式0, A 口,B 口為輸入,C 口為輸出。2) 將A組工作方式設(shè)置成方式2,B組為方式1,B 口作為輸出。3) 將A 口,B 口均設(shè)置成方式1,均為輸入,PC6和PC1為輸出.4) A 口工作在方式1,輸入;B 口工作在方式0,輸出;C 口高4位配合A 口 工作,低4位為輸入。1)MOV AL 92H 2)MOV AL,0C4H 3)MOV AL,0B6H 4)MOV AL, 0B1HOUT 63H,ALOUT63H ALOUT63H ALOUT63H AL3. 8255A 控制字如下,8255A 端口地址為:160H 162H 164H 166H,端口 A

19、方式0輸出,端口 B方式0輸入,端口 C方式0輸出。編寫程序?qū)崿F(xiàn)初始化,并 將端口 B內(nèi)容的2倍與端口 C的內(nèi)容求和后將結(jié)果取反送到端口 Ao根據(jù)端口地址知,端口 A地址為:160H,端口 B地址為:162H,端口 C地址為: 164H,控制端口地址為:166乩端口 A方式0輸出,端口 B方式0輸入,端口 C 方式0輸入知:控制字8BHMOVAL,8BHMOVDX, 164HMOVDX,O166HINAL, DXOUT DX,ALADDAL, BLMOVDX,O162HNOTALINALQXMOVDX, 0160HMOVBL,ALOUTDX,ALADDBL,AL4用一片8255 A芯片設(shè)計一基

20、于PC系統(tǒng)總線的I/O接口板,要求:18255A占用的端口地址為 300H-306H,畫出原理圖。2丨設(shè)8255A的PA PB PC口均工作在方式 0, PA口為輸入,PB PC口均為輸出,編寫8255的初始化程序片段8255A控制字為10010000氏。3編寫程序片段,將從PA 口讀入的狀態(tài)送至PB 口輸出。DOD7的P AOPATWAOAlPBOPB78255A二7PCOPC?dO忒IORTOWAlA2AOA3或門電路悩ASA9A1OAl 5(2)MOV DX,306HMOV AL,90HOUT DX,AL3) MOV DX,300HIN AL,DXMOV DX,302HOUT DX,AL

21、5.8255的控制口地址為236H,開關(guān)信息接在PB 口,發(fā)光二極管接在 PA 口,使 用8255作為接口芯片,讀開關(guān)量的狀態(tài),并用發(fā)光二極管顯示輸出。在將開關(guān) 的信息存放在FIRST單元的同時,發(fā)光二極管完成其信息的顯示。要求畫出完整 的線路連接圖并設(shè)計相應(yīng)的程序。8086工作在最小模式,8255A相應(yīng)的控制字 為 82H。gTorIo?DOD7AlAO士J*r或門電路RDWR刼Al8255A pmcs5PA7PBOPB7h4A15MOV DX,236HMOV AL,82HOUT DX,ALMOV AX,SEG FIRSTMOV DS,AXMOV SI,OFFSET FIRSTLOP: MO

22、V DX,232HIN AL,DXMOV SI,ALMOV DX,230HOUT DX,A LJMP LOP68255A的工作方式控制字和C 口的按位置位/復(fù)位控制字有何差異?假如將C 口的PC2引腳輸出高電平置位,假設(shè)8255A控制口地址是303H程序段應(yīng) 是怎樣的?答:工作方式控制字的最高位為1,而C 口的按位置位/復(fù)位控制字最高位為0MOV DX,303HMOV AL,80HOUT DX,alMOV AL,05HOUT DX,al答案:見圖MOV DX,236HLOP : LOOP LOPMOV AL,80HMOV DX,232HOUT DX,alMOV AL, nn;學(xué)號高位MOV C

23、X,000HOUT DX,AL7 8255A的控制口地址為236H, LED采用共陽級接法。字型信息接在 PB 口,字 位信息接在PA口 ,使用8255A作為接口芯片,在兩塊LED上顯示自己的學(xué)號。要 求畫出完整的線路連接圖并設(shè)計相應(yīng)的程序 8086工作在最小模式,8255A相應(yīng) 控制字為80H。MOVAL , 2START MOV DX,232HMOV AL, nnOUT DX ,ALMOVAL , 1學(xué)號低位OUT DXLOP1MOV DX ,230H,al:LOOP LOP1MOV DX ,230HJMP STARTOUT DX ,ALdo朮:TorToVAl DQDT麗AOAlPBOP

24、B7A2AOA3A15rC或門電路8255AcsPALPAD=巧珀寸乂X8假如打印機(jī)與其工作時序如下列圖,當(dāng)打印機(jī)不忙時(BUSY=0),向它送數(shù)據(jù)設(shè) 每次只傳送1個字節(jié)并在數(shù)據(jù)穩(wěn)定 時用 負(fù)脈沖將數(shù)據(jù)存于打印機(jī)內(nèi)部, 同時設(shè)置打印機(jī)忙信號,即 BUSY =11用可編程接口芯片8255A將打BUSY印機(jī)與總線相連接起來。假如規(guī)定 8255A的地址為0320HH 032FH任選, 試畫出連接電路圖。2丨數(shù)據(jù)段中首地址為BUFFER勺區(qū)域中存放著100字節(jié)要打印的字符,試編 寫包括8255A初始化的打印程序,并將100個字符打印出來。9.在一個系統(tǒng)中,8255A的四個端口地址分別為:420H 42

25、2H 424H和426H 要求:1初始化8255A使端口 A、B、C均工作于方式0,端口 A作為輸入端口, 端口 B和C作為輸出端口。2將端口 A輸入的信息取反后直接輸出到端口 B。3檢測端口 A輸入的信息的PA7位。當(dāng)PA7=1時,端口 C輸出FFH,否如此, 輸出00Ho請編寫程序段,完成上述功能程序要加注解答案: 1MOV DXOUT DX2 MOV AL, 90H,426H,alMOV DX , 420HIN ALMOV DXNOT AL,DX,422H,alOUT DXIN AL,DXTEST AL,80H;測試PA7是否為0MOV AL,0JZ KO;如果為0 ,輸出0MOV AL

26、,0FFH;否如此輸出0FFHMOV DX , 420H從端口 A輸入信息KO : MOV DX 424H ;端口 C 的地址OUT DX , AL8253編程題答:要輸出脈沖周期為1ms ,輸出脈沖的頻率是1 10 31 103 ,當(dāng)輸入時鐘頻率為2MHz時,計數(shù)器初值是2 1031 1032000。1設(shè)8253A三個計數(shù)器的端口地址為100H、101H、102H ,控制存放器端口地址 103H。輸入時鐘為2MHz,讓1號通道周期性的發(fā)出方波,其周期為 1ms,試編 寫初化程序段。使用計數(shù)器1,先加載低8位,后加載高8位,設(shè)為方式3,二進(jìn)制計數(shù),控制 字是76H。設(shè)控制口的地址是103H ,計

溫馨提示

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

評論

0/150

提交評論