




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理課程設(shè)計設(shè)計一:從鍵盤輸入十六進(jìn)制數(shù)并顯示出二進(jìn)制值設(shè)計二:字符串匹配設(shè)計設(shè)計三:字符和數(shù)據(jù)顯示的設(shè)計設(shè)計四:鍵盤輸入小寫字母轉(zhuǎn)換成大寫字母設(shè)計五:計算N!的設(shè)計 2011-7-6設(shè)計一:從鍵盤輸入十六進(jìn)制數(shù)并顯示出二進(jìn)制值實驗?zāi)康模赫莆战邮真I盤數(shù)據(jù)的方法,并了解數(shù)據(jù)顯示時須轉(zhuǎn)換為ASCII碼的原理。實驗內(nèi)容:將鍵盤接收到的4位十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為等值的二進(jìn)制數(shù),再顯示在屏幕終端上。流程圖:程序源代碼:CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENTMARK DB
2、?MESS DB 'INPUT THE NUMBER! Press Enter to Transition,Press Space to Exit!',0DH,0AH,'Input:$'ERROR DB 0DH,0AH, 'Input Error!',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV D
3、S,AX MOV ES,AX MOV SP,TOPHEAD: CRLF MOV MARK,0 MOV AH,09H LEA DX,MESS INT 21H ;顯示提示輸入的信息 CALL GETNUM ;接收鍵入數(shù)值送DX CMP MARK,01H JE HEAD MOV CX,0010H ;16位 MOV BX,DXTTT: ROL BX,1 ;循環(huán)左移1位 MOV DL,BL AND DL,01H ;屏蔽掉高7位 ADD DL,30H MOV AH,02H INT 21H ;顯示二進(jìn)制位對應(yīng)的ASCII字符 LOOP TTT JMP HEADFINI: MOV AH,4CH INT 21H
4、 ;返回DOSGETNUM PROC NEAR ;子程序,接收鍵入數(shù)值送DX PUSH CX XOR DX,DXGGG: MOV AH,01H INT 21H CMP AL,0DH ;輸入為回車,則進(jìn)行轉(zhuǎn)換 JE PPP CMP AL,20H ;輸入為空格,則退回DOS JE FINI CMP AL,30H JB KKK SUB AL,30H CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL,07H CMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2FH JA KKK SUB AL,20HGETS: MOV CL,
5、04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGGKKK: MOV AH,09H MOV DX,OFFSET ERROR INT 21H MOV MARK,01HPPP: PUSH DX CRLF POP DX POP CX RETGETNUM ENDPCODE ENDSEND START運(yùn)行結(jié)果設(shè)計二:字符串匹配設(shè)計實驗內(nèi)容:編寫程序?qū)崿F(xiàn)兩個字符串比較。如相同,則顯示“MATCH”,否則顯示“NO MATCH”。源程序:CRLF MACRO ;顯示回車 MOV DL,0DH MOV AH,02H INT 21H MOV AH,02H MOV DL,0AH INT
6、 21HENDMDATA SEGMENTMESS1 DB 'MATCH',0DH,0AH,'$'MESS2 DB 'NO MATCH',0DH,0AH,'$'MESS3 DB 'INPUT STRING1!',0DH,0AH,'$'MESS4 DB 'INPUT STRING2!',0DH,0AH,'$'MAXLEN1 DB 100STRING1 DB 100 DUP(?)MAXLEN2 DB 100STRING2 DB 100 DUP(?)DATA ENDSCODE
7、 SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET MESS3 INT 21H ;顯示輸入提示信息1 MOV AL,MAXLEN1 MOV BX,OFFSET STRING1 MOV BX,AL ;最大字符緩沖 MOV AH,0AH MOV DX,OFFSET STRING1 INT 21H ;接收鍵入的字符串1 CRLF MOV AH,09H MOV DX,OFFSET MESS4 INT 21H ;顯示輸入提示信息2 MOV AL,MAXL
8、EN2 MOV BX,OFFSET STRING2 MOV BX,AL ;最大字符緩沖設(shè)置 MOV AH,0AH MOV DX,OFFSET STRING2 INT 21H ;接收鍵入的字符串2 CRLF CLD LEA SI,STRING1 ;字符串1的地址送給SI MOV CL,SI+1 ;字符串1的字符數(shù)送給CX MOV CH,0KKK: LEA DI,STRING2 ;字符串2的地址送給DI MOV DL,DI+1 ;字符串2的字符數(shù)送給DX MOV DH,0 ZJ2: MOV AL,SI+2 ;字符串1的第一個字符在字符串2中匹配 CMP DI+2,AL JE ZJ3 ;匹配成功則跳
9、轉(zhuǎn) ZJ1: INC DI ;指向字符串2下一個字符 DEC DX JZ GGG ;字符串2完,不匹配 JMP ZJ2 ;字符串2沒完,重新匹配 ZJ3: DEC CX JZ MMM ;字符串1完,匹配 DEC DX JZ GGG ;字符串2完,不匹配 INC SI ;指向串1下一個字符 INC DI ;指向串2下一個字符 MOV AL,SI+2 CMP DI+2,AL JE ZJ3 ;匹配,跳轉(zhuǎn) DEC DX JZ GGG ;字符串2完,不匹配 LEA SI,STRING1 ;重新從串1的第一個字符匹配 MOV CL,SI+1 MOV CH,0 INC DI JMP ZJ2MMM: MOV
10、AH,09H ;輸出匹配信息 MOV DX,OFFSET MESS1 INT 21H JMP PPPGGG: MOV AH,09H ;輸出不匹配信息 MOV DX,OFFSET MESS2 INT 21H PPP: MOV AH,4CH ;程序終止 INT 21HCODE ENDS END START 設(shè)計三:字符和數(shù)據(jù)顯示的設(shè)計實驗內(nèi)容:編寫程序,先顯示信息“INPUT STRING IS”,在接受字符。如為0-9,則計數(shù)器加1,并顯示數(shù)據(jù),非數(shù)字,則直接顯示,但不計數(shù)。源程序:CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV D
11、L,0AH INT 21HENDM DATA SEGMENTMESS1 DB 'INPUT STRING IS $'MESS2 DB 'Char = $'MESS3 DB 'Not number = $'MESS4 DB 'Num= $'TOTAL DW ?DATA ENDSSTACK SEGMENTSTA DW 32 DUP (?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MO
12、V ES,AX MOV SP,TOP ;初始化 MOV BX,0000H ;計數(shù)值清0 MOV AH,09H MOV DX,OFFSET MESS1 INT 21H CRLFXXX: MOV AH,01H INT 21H ;接收鍵入字符 CMP AL,20H JZ UUU ;是空格鍵則轉(zhuǎn)UUU CMP AL,0DH JNZ III CRLF ;是回車鍵則轉(zhuǎn)UUU JMP UUUIII: CMP AL,30H JB YYY CMP AL,39H JBE VVV ;0-9轉(zhuǎn)VVVYYY: INC BX ;計數(shù)值加1VVV: INC TOTAL JMP XXXUUU: CRLF MOV AH,09H
13、 LEA DX,MESS2 ;顯示字符總數(shù) INT 21H MOV AX,TOTAL CALL DISP MOV AH,02H MOV DL,'H' INT 21H CRLF ;回車換行MOV AH,09H MOV DX,OFFSET MESS3INT 21H ;顯示非數(shù)字字符總數(shù)MOV AX,BXCALL DISP MOV AH,02HMOV DL,'H'INT 21H ;十六進(jìn)制數(shù)標(biāo)志CRLFMOV AH,09HLEA DX,MESS4 ;顯示數(shù)字字符總數(shù)INT 21HMOV AX,BXSUB TOTAL,AXMOV AX,TOTALCALL DISPMOV
14、 AH,02HMOV DL,'H'INT 21HMOV AH,4CHINT 21HDISPP PROC NEAR ;顯示子程序,顯示AL中的數(shù)按十六進(jìn)制數(shù)方式MOV BL,AL ;AL中數(shù)送BLKKK: MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPL ;顯示字節(jié)高位MOV DL,BLAND DL,0FHCALL DISPL ;顯示字節(jié)低位RETDISPP ENDPDISPL PROC NEARADD DL,30H ;由數(shù)值轉(zhuǎn)為參應(yīng)字符的ASCII碼CMP DL,3AH JB DDD ;是0-9轉(zhuǎn)DDD ADD DL,07H ;是A
15、-FDDD: MOV AH,02H INT 21H ;顯示DL中字符 RET ;返回DISPL ENDP ;顯示子程序,顯示AX中的數(shù)按十六進(jìn)制數(shù)方式DISP PROC NEAR PUSH BX PUSH CX PUSH DX PUSH AX ;入棧保存 MOV AL,AH CALL DISPP ;顯示高字節(jié) POP AX CALL DISPP POP DX POP CX POP BX RET ;出棧DISP ENDPCODE ENDS END START設(shè)計四:鍵盤輸入小寫字母轉(zhuǎn)換成大寫字母實驗內(nèi)容: 編寫程序,接收鍵盤字符,并將其中的小寫字母變?yōu)榇髮懽帜?,然后顯示在屏幕上。源程序:DATA
16、 SEGMENT p1 db 100 P2 db 0array db 100 dup(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX mov dx,offset p1 MOV AH,0AH INT 21H xor bx,bx mov BL,p2 mov arraybx,'$' mov di,0ffffh next: inc di cmp arraydi,'$' je exit cmp arraydi,61h jl next cmp arraydi,7ah jg
17、next sub arraydi,20h jmp next exit: mov p1, 0dh mov p2, 0ah MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END START設(shè)計五:計算N!的設(shè)計實驗內(nèi)容:編寫程序,計算N!的程序。數(shù)值N由鍵盤輸入,結(jié)果顯示在屏幕上。N的范圍為065535,即剛好能被16的寄存器容納。源程序:CRLF MACRO;回車,換行 MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0AH INT 21HENDMDATA SEGMENTMESS1 DB
18、39;INPUT THE NUMBER ACCORDING TO HEXNUM!',0DH,0AH,'$'MESS2 DB 'THE RESULT IS: $'ERROR DB 'INPUT ERROR! INPUT ONCE MORE!',0DH ,0AH,'$'LEN DW 1CY DW ?BUF DW 256 DUP(0)DATA ENDSSTACKS SEGMENT STACK 'STACK' DW 32 DUP(?)STACKSENDSCODE SEGMENTASSUME CS: CODE, DS
19、:DATA, ES:DATA, SS:STACKSSTART:MOV AX, DATA MOV DS,AX MOV ES, AX MOV AH, 09H MOV DX,OFFSET MESS1 INT 21H ;顯示輸入提示信息 CALL GETNUM ;讀取鍵入的N值 MOV BP, DX ;N值送BP CMP BP, 0 JZ EEE CMP BP, 1 JZ EEE ;N=0或N=1則轉(zhuǎn)EEE MOV SI, OFFSET BUF ;緩沖區(qū)首址 MOV SI,DX ;緩沖區(qū)初始化為值NXXX: DEC BP ;N值減1 CMP BP,0001H JZ LLL ;若為1則轉(zhuǎn)LLL XOR
20、BX,BX ;偏移指針清0 MOV WORD PTR CY,0 ;進(jìn)位單元清0 MOV CX,LEN ;當(dāng)前結(jié)果長度送CXTTT: MOV AX, SI+BX MUL BP ;相乘 ADD AX,CY ;加低位進(jìn)位 JNC JJJ ;結(jié)果無進(jìn)位轉(zhuǎn)JJJ INC DX ;有進(jìn)位將高位單元加1JJJ: MOV SI+BX,AX ;結(jié)果送緩沖區(qū)中 MOV CY,DX ;高位單元送進(jìn)位單元 INC BX INC BX ;一個字長度 LOOP TTT ;循環(huán) CMP DX, 0000H JZ BBB ;最后1次的進(jìn)位為0則轉(zhuǎn)BBB INC WORD PTR LEN ;長度加1 MOV SI+BX,DX
21、;進(jìn)位送緩沖區(qū)中BBB: JMP XXXEEE: MOV SI,OFFSET BUF MOV WORD PTR SI,1 ;結(jié)果為1LLL: MOV AH, 09H MOV DX,OFFSET MESS2 INT 21H ;顯示表頭 MOV CX,LEN MOV BX,CX ;長度 DEC BX SHL BX,1 ;1個字為兩個字節(jié)CCC: MOV AX, SI+BX CALL DISP DEC BX DEC BX ;顯示結(jié)果 LOOP CCC MOV AX,4C00H ;結(jié)束 INT 21HDISP1 PROC NEAR ;顯示字符(AL) MOV BL, AL MOV DL, BL MOV
22、 CL, 04 ROL DL, CL AND DL, 0FH CALL DISPL ;顯示高位 MOV DL, BL AND DL, 0FH CALL DISPL ;顯示低位 RETDISP1 ENDPDISPL PROC NEAR ;顯示一位(DL0XH) ADD DL, 30H CMP DL, 3AH JB DDD ADD DL, 07HDDD: MOV AH, 02H INT 21H RETDISPL ENDPDISP PROC NEAR ;顯示4位數(shù)(HEX) PUSH BX PUSH CX PUSH DX PUSH AX MOV AL, AH CALL DISP1 POP AX CA
23、LL DISP1 POP DX POP CX POP BX RETDISP ENDPGETNUMPROC NEAR ;字符匹配程序 PUSH CXREGET:XOR DX, DXGGG: MOV AH, 01H INT 21H CMP AL, 0DH JZ PPP CMP AL, 20H JZ PPP SUB AL, 30H JB KKK CMP AL, 0AH JB GETS CMP AL,11H JB KKK SUB AL, 07H CMP AL, 0FH JBE GETS CMP AL, 2AH JB KKK CMP AL, 2FH JA KKK SUB AL, 20HGETS: MOV
24、 CL, 04H SHL DX,CL XOR AH, AH ADD DX ,AX JMP GGGKKK: CRLF MOV AH, 09H MOV DX,OFFSET ERROR INT 21H JMP REGETPPP: PUSH DX CRLF POP DX POP CX RETGETNUMENDP CODE ENDS END START*心得體會*經(jīng)過了一周的匯編課程設(shè)計,我在其中經(jīng)歷了很大的困難,可是也感受到了巨大的幸福。當(dāng)我面對一個難題,從一籌莫展到逐漸清晰明朗,到最后成功完成任務(wù)。只要親身經(jīng)歷過,才能感受其中的淚水和快樂。更重要的是我們對匯編有了更進(jìn)一步的理解。有了實際應(yīng)用的體會,知識更加的融會貫通了。不管是從知識上還是從思維方式上,我們都得到了很大的
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)合同范本林業(yè)
- 傳單派發(fā)合同范本
- 鄉(xiāng)鎮(zhèn)物業(yè)收費(fèi)合同范本
- 勞務(wù)公司租車合同范本
- 公會主播合同范本
- 勞務(wù)購買合同范例
- 公司經(jīng)營模式合同范本
- 出售買賣合同范本
- 勞動合同轉(zhuǎn)簽合同范本
- 2025國合通測校園招聘筆試參考題庫附帶答案詳解
- 悟哪吒精神做英雄少年開學(xué)第一課主題班會課件-
- 2025年2級注冊計量師專業(yè)實務(wù)真題附答案
- 2025年春季學(xué)期教導(dǎo)處工作計劃及安排表
- 果實品質(zhì)評價體系建立與應(yīng)用-深度研究
- 2024年江蘇省中小學(xué)生金鑰匙科技競賽(高中組)考試題庫(含答案)
- 智能制造技術(shù)在工業(yè)設(shè)計中的應(yīng)用
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 數(shù)學(xué)
- 2024年江西建設(shè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 北京市東城區(qū)2024-2025學(xué)年高一上學(xué)期期末統(tǒng)一檢測歷史試卷(含答案)
- 2025年昆明市公安局招考文職人員高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論