微機原理與接口技術設計實驗[驕陽教學]_第1頁
微機原理與接口技術設計實驗[驕陽教學]_第2頁
微機原理與接口技術設計實驗[驕陽教學]_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一:編寫程序,比較兩個字符串STRING1和STRING2所含的字符是否相同,若字符相同則顯示“Match”,否則顯示“No Match”參考程序:DATA SEGMENTSTRING1 DB HAPPY ASMLEN EQU $-STRING1STRING2 DB HAPPY ASMMESSAGE1 DB MATCH,0DH,0AH,$MESSAGE2 DB NO MATCH,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,STRI

2、NG1LEA DI,STRING2MOV CX,LENCOMPARE:MOV AL,SIMOV BL,DICMP AL,BLJNE DISMATCHINC SIINC DILOOP COMPAREMATCH:LEA DX,MESSAGE1JMP DISPDISMATCH:LEA DX,MESSAGE2DISP: MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START實驗二:編寫程序,從鍵盤輸入一串字符,以$或回車結束,將其中的小寫字母轉變?yōu)榇髮懽帜?,其余字符不做轉換,原樣輸出,結果顯示在屏幕上。參考程序:DATA SEGMENTBUF DB 5

3、0 DB ? DB 50 DUP(?)INPUTSTRING DB PLEASE INPUT A STRING:,$OUTPUTSTRING DB OUTPUTSTRING IS:,$ENTERSTRING DB 0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,INPUTSTRINGMOV AH,09HINT 21HLEA DX,BUFMOV AH,0AHINT 21HLEA DX,ENTERSTRINGMOV AH,09HINT 21H LEA BX,BUFADD BX,

4、2NEXT1:MOV AL,BXINC BXCOMPARE:CMP AL,24H JZ DISP CMP AL,61H JB NEXT1 CMP AL,7AH JA NEXT1 SUB AL,20H MOV BX-1,AL JMP NEXT1DISP:LEA DX,OUTPUTSTRING MOV AH,09H INT 21H LEA DX,BUF+2 MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDSEND START實驗三:利用子程序方法編寫程序,設有10個無符號數的字節(jié)序列,查找該序列中的最大值和最小值,并把結果顯示在屏幕上。參考程序1:(針對一

5、位10進制數)STACK SEGMENT STACKDW 256 DUP(?) TOP LABEL WORDSTACK ENDSDATA SEGMENTBUF DB 00H,01H,02H,03H,04HDB 05H,06H,07H,08H,09HCOUNT EQU $-BUFENTERSTRING DB 0DH,0AH,$MAXSTRING DB THE MAXIMUN NUMBER IS:,$MINSTRING DB THE MINIMUN NUMBER IS:,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV A

6、X,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV SI,OFFSET BUFMOV CX,COUNTCALL BRANCHPUSH AXLEA DX,MAXSTRINGMOV AH,09HINT 21HPOP AXMOV DL,AHADD DL,30HPUSH AXMOV AH,02HINT 21HLEA DX,ENTERSTRINGMOV AH,09HINT 21HLEA DX,MINSTRINGMOV AH,09HINT 21HPOP AXMOV DL,ALADD DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 2

7、1HBRANCHPROC NEARJCXZ NEXT4PUSH SIPUSH CXPUSH BXMOV BH,SIMOV BL,BHCLDNEXT1:LODSBCMP AL,BHJBE NEXT2MOV BH,ALJMP NEXT3NEXT2:CMP AL,BLJAE NEXT3MOV BL,ALNEXT3:LOOP NEXT1MOV AX,BXPOP BXPOP CXPOP SINEXT4:RETBRANCHENDPCODE ENDS END START參考程序二:(針對兩位十六進制數或無符號數)STACK SEGMENT STACKDW 256 DUP(?) TOP LABEL WORDS

8、TACK ENDSDATA SEGMENTBUF DB 0FFH,55H,33H,44H,54HDB 45H,46H,47H,48H,1AHCOUNT EQU $-BUFENTERSTRING DB 0DH,0AH,$MAXSTRING DB THE MAXIMUN NUMBER IS:,$MINSTRING DB THE MINIMUN NUMBER IS:,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA SP,TOPMOV SI,O

9、FFSET BUFMOV CX,COUNTCALL BRANCHMOV DX,AXPUSH DXLEA DX,MAXSTRINGMOV AH,09HINT 21HPOP DXMOV AL,DHPUSH DXCALL DISPGAO4POP DXMOV AL,DHPUSH DXCALL DISPDI4LEA DX,ENTERSTRINGMOV AH,09HINT 21HLEA DX,MINSTRINGMOV AH,09HINT 21HPOP DXMOV AL,DLPUSH DXCALL DISPGAO4POP DXMOV AL,DLCALL DISPDI4MOV AH,4CHINT 21HBRA

10、NCHPROC NEARJCXZ NEXT4PUSH SIPUSH CXPUSH BXMOV BH,SIMOV BL,BHCLDNEXT1:LODSBCMP AL,BHJBE NEXT2MOV BH,ALJMP NEXT3NEXT2:CMP AL,BLJAE NEXT3MOV BL,ALNEXT3:LOOP NEXT1MOV AX,BXPOP BXPOP CXPOP SINEXT4:RETBRANCHENDPDISPDI4PROC NERR ;低四位AND AL,0FHMOV DL,ALCMP DL,9JLE NUM1ADD DL,7NUM1:ADD DL,30HMOV AH,02HINT 2

11、1HRETDISPDI4 ENDPDISPGAO4PROC NERR ;高四位SAR AL,4AND AL,0FHMOV DL,ALCMP DL,9JLE NUM2ADD DL,7NUM2:ADD DL,30HMOV AH,02HINT 21HRETDISPGAO4 ENDPCODE ENDS END START實驗四:8255交通燈參考程序:MY8255_A EQU 288H ;8255的A口地址MY8255_B EQU 289H ;8255的B口地址MY8255_C EQU 28AH ;8255的C口地址MY8255_MODE EQU 28BH ;8255的控制寄存器地址STACK1 SE

12、GMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT LA DB ? ;定義數據變量LB DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;定義8255工作方式 MOV AL,80H ;工作方式0,A口和B口為輸出 OUT DX,ALL1: MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組綠燈亮,2組紅燈亮 MOV AL,24H OUT DX,AL CALL DALLY1 MOV CX,05HL2:

13、MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組黃燈亮,2組紅燈亮 MOV AL,44H OUT DX,AL CALL DALLY2 MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組黃燈滅,2組紅燈亮 MOV AL,04H OUT DX,AL CALL DALLY2 LOOP L2L3: MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組綠燈亮,2組紅燈亮 MOV AL,81H OUT DX,AL CALL DALLY1 MOV CX,05HL4: MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組黃燈亮,2組紅燈亮 MOV AL,82H OUT DX,AL CAL

14、L DALLY2 MOV DX,MY8255_A ;寫A口發(fā)出的數據,1組黃燈滅,2組紅燈亮 MOV AL,80H OUT DX,AL CALL DALLY2 LOOP L4L5: MOV AH,01H ;判斷是否有按鍵按下,調用功能號1 INT 16H ;ROM BIOS 功能調用 JZ L1 ;無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT: MOV AX,4C00H ;結束程序退出; INT 21H ;DOS 系統(tǒng)功能調用DALLY1 PROC NEAR ;軟件延時子程序,東西方向紅燈亮,南北方向綠燈亮 PUSH CX PUSH DI MOV CX,3FFHY1: MOV DI,9000HX1:

15、 DEC DI JNZ X1 LOOP Y1 POP DI POP CX RETDALLY1 ENDPDALLY2 PROC NEAR ;軟件延時子程序,黃燈閃爍(即亮與滅)的時間間隔, PUSH CX PUSH DI MOV CX,3FHY2: MOV DI,9000HX2: DEC DI JNZ X2 LOOP Y2 POP DI POP CX RETDALLY2 ENDPCODE ENDS END START參考程序2:流水燈MY8255_A EQU 288H ;8255的A口地址MY8255_B EQU 289H ;8255的B口地址MY8255_C EQU 28AH ;8255的C口

16、地址MY8255_MODE EQU 28BH ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT LA DB ? ;定義數據變量DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;定義8255工作方式 MOV AL,80H ;工作方式0,A口和B口為輸出 OUT DX,AL MOV CX,0FFFFH MOV BL,80HL1: MOV DX,MY8255_A ;寫A口發(fā)出

17、的數據 MOV AL,BL OUT DX,AL CALL DALLY1 ROR BL,1 LOOP L1QUIT: MOV AX,4C00H ;結束程序退出 INT 21H ;DOS 系統(tǒng)功能調用DALLY1 PROC NEAR ;軟件延時子程序,東西方向紅燈亮,南北方向綠燈亮 PUSH CX PUSH DI MOV CX,3FHY1: MOV DI,9000HX1: DEC DI JNZ X1 LOOP Y1 POP DI POP CX RETDALLY1 ENDPCODE ENDS END START實驗五:8254一赫茲方波輸出參考程序:MY8254_COUNT0 EQU 280H ;8

18、254計數器0端口地址MY8254_COUNT1 EQU 281H ;8254計數器1端口地址MY8254_COUNT2 EQU 282H ;8254計數器2端口地址MY8254_MODE EQU 283H ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,37H ;計數器0,方式3 OUT DX,AL MOV DX,MY8254_COUNT0 ;裝入計數初值 MOV AL,00 ;1000分頻 OUT DX,AL MOV AL,10 OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,77H ;計數器1,方式3 OUT DX,AL MOV DX,MY8254_COUNT1 ;裝

溫馨提示

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

評論

0/150

提交評論