微機(jī)原理課程設(shè)計(jì)報(bào)告_第1頁
微機(jī)原理課程設(shè)計(jì)報(bào)告_第2頁
微機(jī)原理課程設(shè)計(jì)報(bào)告_第3頁
微機(jī)原理課程設(shè)計(jì)報(bào)告_第4頁
微機(jī)原理課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微 機(jī) 課 程 設(shè) 計(jì) 報(bào) 告班級(jí):姓名:學(xué)號(hào):任務(wù)一:1、目的:字符串匹配的設(shè)計(jì)要求:為掌握提示信息的設(shè)置方法及讀取鍵入信息的方法。編寫程序?qū)崿F(xiàn)兩個(gè)字符串比較,如相同,則顯示“MATCH”;否則,顯示“NO MATCH”。2、流程圖顯示“NO MATCH”SI加1,指向下一字符字符已取完?返回 DOS相等?顯示“MATCH”入口初始化顯示請(qǐng)輸入字符串1 用INT 21H的0AH號(hào)子功能,接收字符串顯示請(qǐng)輸入字符串2SI指向串1的首字符SI指向的字符和字符串2比較NYNY3、源程序:DATAS SEGMENT s1 db please input the first string:,$ st1

2、 db 100 db ? db 100 dup(?) s2 db 0ah,plaese input the second string:,$ st2 db 100 db ? db 100 dup(?) s3 db 0ah,matah,$ s4 db 0ah,no match,$ ;此處輸入數(shù)據(jù)段代碼 DATAS ENDSSTACKS SEGMENT ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov dx,offset s1 ;顯示提示信息1

3、 mov ah,9h int 21h mov dx,offset st1 ;接收鍵入的字符串1 mov ah,0ah int 21h mov dx,offset s2 ; 顯示提示信息2 mov ah,9h int 21h mov dx,offset st2 ;接收鍵入的字符串2 mov ah,0ah int 21h mov si,offset st1 ;字符串1的地址送給SI mov di,offset st2 ; 字符串2的地址送給DI mov ax,0 lp1: mov bl,si+1 ; 字符串1的字符數(shù)送給bl cmp bl,di+1 ;字符串2的字符數(shù)與字符串1相比較 jnz lp

4、4 ;不等轉(zhuǎn)lp4 mov al,si+1 mov cx,ax ; 給cx賦字符串1的字符數(shù) lp2: mov bl,si+2 ; 字符串1的第一個(gè)字符在字符串2中匹配 cmp bl,di+2 jnz lp4 inc si inc di loop lp2 ;循環(huán)cx內(nèi)容減1,cx不等于0,繼續(xù)循環(huán),跳轉(zhuǎn)lp2 lp3: mov dx,offset s3 mov ah,9h int 21h jmp nextlp4: mov dx,offset s4 mov ah,9h int 21h ;此處輸入代碼段代碼next: MOV AH,4CH INT 21HCODES ENDS END START4、

5、結(jié)果:5、心得要先比較字符串的長度,前面要先分別定義和,并且應(yīng)該保留足夠的字節(jié)空間。任務(wù)二:1、目的:字符和數(shù)據(jù)的顯示設(shè)計(jì) 要求:為掌握字符和數(shù)據(jù)的顯示方法。編寫程序,先顯示信息:INPUTSTRING,THE END FLAG IS$,在接受字符。如為0-9,則計(jì)數(shù)器加1,并顯示數(shù)據(jù);如為非數(shù)字,則直接顯示,但不計(jì)數(shù)。2、流程圖3、源程序:DATA SEGMENT DATA1 DB 40 DUP(?) DISPP1 DB input string,the end flag is CR,quit with ctrl-c,0DH,0AH,$ DISPP2 DB 0DH,0AH,$ DISPP3

6、DB the input string is:,$DATA ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATA;規(guī)定CS,DS的內(nèi)容START: MOV AX,DATA MOV DS,AX ;DS初始化為DATA L5: MOV SI,00H MOV CL,00H ;寄存器清零 MOV BX,OFFSET DATA1 ;把DATA1偏移地址放入BX中 LEA DX,DISPP1 MOV AH,9 INT 21H;調(diào)用int 21的09功能,輸出字符串L1: MOV AH,1 INT 21H;從鍵盤輸入字符,放入AH中 CMP AL,03H JZ L4 ;如果是結(jié)

7、束字符,則程序結(jié)束并返回 CMP AL,0DH JZ L3 ;如果輸入是回車,則轉(zhuǎn)到L3程序 MOV BX+SI,AL ;AL中值放入BX中,SI所指向的地址中 INC SI;SI自加1 CMP AL,30H JNB kk JMP L1kk: CMP AL,39H JNA L2 JMP L1L2: INC CL JMP L1 ;如果輸入不在1到9范圍內(nèi),則轉(zhuǎn)到L1程序 L3: LEA DX,DISPP2 MOV AH,9 INT 21H;調(diào)用int 21的09功能,輸出字符串 LEA DX,DISPP3 ;取DISSP3首地址送到DX中 MOV AH,9 INT 21H ;調(diào)用int 21的0

8、9功能,輸出字符串 ADD CL,30H MOV BX+SI+1,CL;AL中值放入BX中,SI所指向的地址中 MOV AL,0AH MOV BX+SI+2,AL;AL中值放入BX中,SI+1所指向的地址中 MOV AL,$ MOV BX+SI+3,AL ;AL中值放入BX中,SI+2所指向的地址中 MOV DX,BX MOV AH,9 INT 21H ;顯示BX中值 LEA DX,DISPP2 MOV AH,9 INT 21H ;調(diào)用int 21的09功能,輸出字符串 JMP L5L4: MOV AH,4CH;結(jié)束處理 INT 21H;調(diào)用int 21的4cH功能,終止當(dāng)前程序并返回調(diào)用程序

9、CODES ENDS END START4、結(jié)果5、心得適當(dāng)?shù)倪\(yùn)用,任務(wù)三:1、目的:響鈴設(shè)計(jì) 要求:為掌握字符和數(shù)據(jù)的顯示方法。編寫程序,從鍵盤接受輸入字符,如是數(shù)字N,則響鈴N次;如不是數(shù)字,則不響。2、流程圖3、源程序:DATAS SEGMENTDATA1 DB input number1-9,quit with ctrl-c,0DH,0AH,$DISPP1 DB 0DH,0AH,$ DISPP2 DB wrong number,please input again or quit with ctrl-c,0DH,0AH,$ ;此處輸入數(shù)據(jù)段代碼 DATAS ENDSSTACKS SEG

10、MENT ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATASMOV DS,AXL1: LEA DX,DATA1 MOV AH,9 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV AH,1 INT 21H CMP AL,$ JZ L4 CMP AL,31H JL L5 CMP AL,39H JG L5 jmp L6L5: LEA DX,DISPP2 MOV AH,9 INT 21H jmp l1L6 : MOV BL,AL SUB BL,3

11、0H L2: MOV DL,7 MOV AH,2 INT 21H MOV CX,0FFFH L3: MOV DX,CX MOV CX,0FFFFH LP: LOOP LP MOV CX,DX LOOP L3 DEC BL JNZ L2 JMP L1 ;此處輸入代碼段代碼L4: MOV AH,4CH INT 21HCODES ENDS END START4、結(jié)果:5、心得前面要首先定義,輸入正確的和輸入錯(cuò)誤的不同轉(zhuǎn)向語句,并且要給響鈴延長時(shí)間,用來確定響鈴的次數(shù)。任務(wù)四:1、目的:將鍵盤輸入的小寫字母轉(zhuǎn)換成大寫字母的設(shè)計(jì)要求:為了解小寫字母和大寫字母在計(jì)算機(jī)內(nèi)的表示方法,并學(xué)習(xí)如何進(jìn)行轉(zhuǎn)換。編寫

12、程序,接收鍵盤字符,并將其中的小寫字母轉(zhuǎn)變?yōu)榇髮懽帜?,然后顯示在屏幕上。2、流程圖NY入口段寄存器和堆棧初始化BX指向字符行緩沖區(qū)首址偏移指針SI清0INT 21H的01H號(hào)子功能接收鍵入字符是小寫字母?是回車鍵?是ctrl+c鍵?小寫字母的ASCII碼值轉(zhuǎn)化為大寫字母的ASCII碼值存入字符緩沖區(qū)BX+SI單元SI加1指向下一單元顯示轉(zhuǎn)換后的字符行緩沖區(qū)內(nèi)容返回DOSYYNN3、源程序:DATAS SEGMENTBUF DB 82 DUP (?) ;此處輸入數(shù)據(jù)段代碼 DISPP1 DB Please input string (end with enter, exit with ctrl-

13、c):,0dH,0aH,$DISPP2 DB The converted string is:, 0DH, 0AH,$ DISPP3 DB 0DH,0AH,$ DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS;規(guī)定CS,DS的內(nèi)容START: MOV AX,DATAS MOV DS,AX;DS初始化為DATAS MOV ES,AX MOV BX,OFFSET BUF;把BUF偏移地址放入BX中 LEA DX,DISPP1 MOV AH,9 INT 21H;調(diào)用int 21的09功能,輸出字符串1KKK:MOV SI,00H;源變址寄存器清零GGG

14、:MOV AH,01H INT 21H;從鍵盤輸入字符,放入AL中 CMP AL,03H JZ PPP;如果是結(jié)束字符,則程序結(jié)束并返回 CMP AL,0DH JZ BBB;如果輸入是回車,則轉(zhuǎn)到BBB程序 CMP AL,61H JB TTT; CMP AL,7AH JA TTT;如果輸入不在a到z范圍內(nèi),則轉(zhuǎn)到TTT程序 SUB AL,20H;AL中值減去20HTTT:MOV BX+SI,AL;AL中值放入BX中,SI所指向的地址中 INC SI;SI自減1 JMP GGG;無條件跳轉(zhuǎn)到GGGBBB: LEA DX,DISPP3 ;取DISSP3首地址送到DI中 MOV AH,9 INT 21H;調(diào)用int 21的09功能,輸出字符串3 LEA DX,DISPP2 MOV AH,9 INT 21H;調(diào)用int 21的09功能,輸出字符串 MOV BX+SI,AL;AL中值放入BX中,SI所指向的地址中 MOV AL,0AH;AL置為0AH MOV BX+SI+1,A

溫馨提示

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

評(píng)論

0/150

提交評(píng)論