《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):28033136 上傳時(shí)間:2021-08-22 格式:DOC 頁(yè)數(shù):24 大小:141KB
收藏 版權(quán)申訴 舉報(bào) 下載
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共24頁(yè)
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共24頁(yè)
《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共24頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū) 課程設(shè)計(jì)任務(wù)書(shū) 學(xué)生姓名: **** 專業(yè)班級(jí): 電信0801班 指導(dǎo)教師: **** 工作單位: 信息工程學(xué)院 題 目:英文字母大小寫(xiě)轉(zhuǎn)換程序設(shè)計(jì) 初始條件: 具備數(shù)字電路的理論知識(shí);具備微機(jī)原理的理論知識(shí)和實(shí)踐能力;熟悉匯編語(yǔ)言編程技術(shù);熟悉80X86的CPU結(jié)構(gòu)和指令系統(tǒng);熟悉相關(guān)常用接口電路的設(shè)計(jì)使用方法。 要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求) 1、輸入英文字母串,在回車(chē)后實(shí)現(xiàn)大小寫(xiě)轉(zhuǎn)換 2、按命令

2、要求將字符串轉(zhuǎn)換為全部大寫(xiě)或全部小寫(xiě) 3、非英文字母不允許輸入并聲響報(bào)警 4、程序采用匯編語(yǔ)言在PC機(jī)上完成 5、完成符合學(xué)校要求的設(shè)計(jì)說(shuō)明書(shū) 時(shí)間安排: 一周,其中2天程序設(shè)計(jì),2天程序調(diào)試,1天完成課程設(shè)計(jì)報(bào)告書(shū)及答辯 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日 目 錄 摘要 I 1 DOS功能調(diào)用 1 2總體方案論證 4 3程序流程圖及程序設(shè)計(jì)分析 5 3.1主程序設(shè)計(jì) 5 3.1.1流程圖及其分析 5 3.1.2程序設(shè)計(jì) 6 3.2 c

3、hos字符串轉(zhuǎn)換子程序設(shè)計(jì) 8 3.2.1流程圖及其分析. 8 3.2.2程序設(shè)計(jì) 9 3.3小寫(xiě)轉(zhuǎn)大寫(xiě)子程序設(shè)計(jì) 11 3.3.1流程圖及其分析 11 3.3.2程序設(shè)計(jì) 12 3.4大寫(xiě)轉(zhuǎn)小寫(xiě)子程序設(shè)計(jì) 13 3.4.1流程圖及其分析 13 3.4.2程序設(shè)計(jì) 14 4 總程序 15 5 課程設(shè)計(jì)心得體會(huì) 20 參考文獻(xiàn) 21 摘 要 匯編語(yǔ)言是用指令的助記符、符號(hào)地址、標(biāo)號(hào)等書(shū)寫(xiě)程序的語(yǔ)言,實(shí)際上是機(jī)器語(yǔ)言的一種符號(hào)表示,主要特點(diǎn)是可以使用助記符來(lái)表示機(jī)器指令的操作碼和操作數(shù),可以用標(biāo)號(hào)和符號(hào)來(lái)代替地址、常量和變量

4、。匯編語(yǔ)言是能夠利用計(jì)算機(jī)所有硬件特性進(jìn)而直接控制硬件的唯一語(yǔ)言。本次課程設(shè)計(jì)的任務(wù)是用匯編語(yǔ)言做一個(gè)英文字母大小寫(xiě)轉(zhuǎn)換程序,按照用戶的要求完成對(duì)輸入數(shù)據(jù)的大寫(xiě)或者小寫(xiě)轉(zhuǎn)換。先輸入要轉(zhuǎn)換的數(shù)據(jù),再對(duì)數(shù)據(jù)進(jìn)行檢驗(yàn)判斷其合法性,對(duì)不合法的數(shù)據(jù)進(jìn)行警報(bào)并重新輸入數(shù)據(jù),對(duì)合法的數(shù)據(jù)按照要求進(jìn)行大寫(xiě)或者小寫(xiě)轉(zhuǎn)換,最后顯示轉(zhuǎn)換后的字符串。 關(guān)鍵詞:DOS功能調(diào)用 大寫(xiě)英文 小寫(xiě)英文 轉(zhuǎn)換 1 DOS功能調(diào)用 在進(jìn)行設(shè)計(jì)之前,先要弄清楚INT 21H軟中斷的DOS功能調(diào)用。 MS DOS操作系統(tǒng)為程序設(shè)計(jì)者提供了可以直接調(diào)用的軟

5、中斷處理程序,每一個(gè)中斷處理程序完成一個(gè)特定的功能操作。依據(jù)編程需要選擇適當(dāng)?shù)奶幚沓绦?,編程者不需再重新編?xiě)程序,而是使用INT n軟中斷指令。每執(zhí)行一種不同類型碼n的軟中斷指令,就執(zhí)行一個(gè)中斷處理程序,其主要功能如下。 ① 磁盤(pán)的讀/寫(xiě)控制。 ② 內(nèi)存管理、文件操作和目錄管理。 ③ 基本輸入/輸出(對(duì)鍵盤(pán)、打印機(jī)和顯示器等)控制,另外還有日期、時(shí)間管理等。 當(dāng)類型碼n=05H~1FH時(shí),調(diào)用BIOS的中斷處理程序;類型碼n=20H~3FH時(shí),調(diào)用DOS的中斷處理程序,這次課程設(shè)計(jì)使用的是DOS中斷處理程序。 INT 21H軟中斷是一個(gè)具有幾十種功能的大型中

6、斷服務(wù)程序,給這些子功能程序分別予以編號(hào),稱為功能號(hào)。每個(gè)功能程序完成一種特定的操作和處理。對(duì)INT 21H軟中斷指令對(duì)應(yīng)的功能子程序的調(diào)用稱為DOS系統(tǒng)功能調(diào)用。調(diào)用系統(tǒng)功能子程序時(shí),不必了解所使用設(shè)備的物理特性、接口方式及內(nèi)存分配等,也不必編寫(xiě)繁瑣的控制程序,這樣給應(yīng)用者帶來(lái)了很大的方便。 應(yīng)用INT 21H系統(tǒng)功能調(diào)用的方法如下。 ① 入口參數(shù)送指定的寄存器或內(nèi)存。 ② 功能號(hào)送AH中。 ③ 執(zhí)行INT 21H軟中斷指令。 有的子功能程序不需要入口參數(shù),但大部分需要把參數(shù)送入指定位置。程序員只要給出這三方面的信息,不必關(guān)心程序具體如何執(zhí)行,在內(nèi)存中的存

7、放地址如何,DOS就會(huì)根據(jù)所給的參數(shù)信息自動(dòng)轉(zhuǎn)入相應(yīng)的子程序去執(zhí)行并產(chǎn)生相應(yīng)結(jié)果。下面介紹常用的功能調(diào)用。 (1) 鍵盤(pán)輸入并顯示(1號(hào)功能調(diào)用) 格式: MOV AH, 01H INT 21H 功能:按下任何鍵,將其對(duì)應(yīng)字符的ASCII碼送入AL中,并在屏幕上顯示該字符。如果按下的是Ctrl+Break組合鍵,則終止程序執(zhí)行。1號(hào)功能調(diào)用無(wú)須入口參數(shù),出口參數(shù)在AL中。 (2) 鍵盤(pán)輸入但不顯示輸入字符(8號(hào)功能調(diào)用) 格式: MOV AH, 08H INT 21H 功能:同1號(hào)功能調(diào)用,但字符不在屏幕上顯示。 (3) 屏幕顯示一

8、個(gè)字符(2號(hào)功能調(diào)用) 格式: MOV DL, 字符 MOV AH, 02H INT 21H 功能:將置入DL寄存器中的字符在屏幕上顯示輸出。 (4) 打印輸出(5號(hào)功能調(diào)用) 格式: MOV DL, 字符 MOV AH, 05H INT 21H 功能:將置入DL寄存器中的字符送打印機(jī)接口,打印輸出。 (5) 屏幕顯示字符串(9號(hào)功能調(diào)用) 格式: MOV DX, 字符串的偏移地址 MOV AH, 09H INT 21H 功能:在屏幕上顯示字符

9、串。 在使用9號(hào)功能調(diào)用時(shí),應(yīng)當(dāng)注意以下問(wèn)題。 ① 待顯示的字符串必須先放在內(nèi)存一數(shù)據(jù)區(qū)(DS段)中,且以‘$’符號(hào)作為結(jié)束標(biāo)志。② 應(yīng)當(dāng)將字符串首地址的段基址和偏移地址分別存入DS和DX寄存器中。 (6) 字符串輸入功能調(diào)用(0AH號(hào)功能調(diào)用) 格式: MOV DX, 已定義緩沖區(qū)的偏移地址 MOV AH, 0AH INT 21H 功能:從鍵盤(pán)接收字符,并存放到內(nèi)存緩沖區(qū)。 在使用0AH號(hào)功能調(diào)用時(shí),應(yīng)當(dāng)注意以下問(wèn)題。 ① 執(zhí)行前先定義一個(gè)輸入緩沖區(qū),緩沖區(qū)內(nèi)第一個(gè)字節(jié)定義為允許最多輸入的字符個(gè)數(shù),字符個(gè)數(shù)應(yīng)包括回車(chē)符0DH在內(nèi),不能為

10、“0”值。第二個(gè)字節(jié)保留,在執(zhí)行程序完畢后存入輸入的實(shí)際字符個(gè)數(shù)。從第三個(gè)字節(jié)開(kāi)始存入從鍵盤(pán)上接收字符的ASCII碼。若實(shí)際輸入的字符個(gè)數(shù)少于定義的最大字符個(gè)數(shù),則緩沖區(qū)其他單元自動(dòng)清0。若實(shí)際輸入的字符個(gè)數(shù)大于定義的字符個(gè)數(shù),其后輸入的字符丟棄不用,且響鈴示警,一直到輸入回車(chē)鍵為止。整個(gè)緩沖區(qū)的長(zhǎng)度等于最大字符個(gè)數(shù)再加2。 ② 應(yīng)當(dāng)將緩沖區(qū)首地址的段基址和偏移地址分別存入DS和DX寄存器中。 (7) 返回DOS操作系統(tǒng)(4CH號(hào)功能調(diào)用) 格式: MOV AH, 4CH INT 21H 功能:終止當(dāng)前程序的運(yùn)行,并把控制權(quán)交給調(diào)用的程序,即返回DOS系統(tǒng)

11、,屏幕出現(xiàn)DOS提示符,如“C: \ >”,等待DOS命令。 除了這幾種功能調(diào)用,還有其他的,這里就不再一一介紹了。 2總體方案論證 該課程設(shè)計(jì)的任務(wù)是做一個(gè)英文字母大小寫(xiě)轉(zhuǎn)換程序,完成對(duì)輸入數(shù)據(jù)的大寫(xiě)或者小寫(xiě)轉(zhuǎn)換。 輸入部分:在輸入之前,先利用INT 21H的9號(hào)功能調(diào)用輸出顯示輸入字符串提示符please input the string:再利用INT 21H的8號(hào)功能調(diào)用輸入字符串(在屏幕上并不顯示)。由于鍵盤(pán)輸入的并不一定是英文字母,所以要對(duì)輸入的每一個(gè)字符進(jìn)行判別,如果輸入的字符串都是英文字符則進(jìn)行大小寫(xiě)轉(zhuǎn)換,并將

12、字符串存儲(chǔ)到緩沖區(qū),且將字符輸出顯示到屏幕上;如果輸入的字符串中有非英文字符,則產(chǎn)生報(bào)警聲并返回重新輸入數(shù)據(jù),直至輸入的字符符合要求為止。 轉(zhuǎn)換部分:由于要求要有兩種轉(zhuǎn)換方式,即大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母或者由小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,所以要求用戶在進(jìn)行轉(zhuǎn)換前輸入提示要轉(zhuǎn)換的方法。為解決這個(gè)問(wèn)題,先利用INT 21H的9號(hào)功能調(diào)用輸出顯示轉(zhuǎn)換方法選擇提示符‘please choose the type to output(1or2):’ ,1為Uppercase,2為L(zhǎng)owercas。再利用INT 21H的8號(hào)功能調(diào)用輸入1或者2(在屏幕上并不顯示)。如果此時(shí)輸入為1,則進(jìn)行字符串小寫(xiě)轉(zhuǎn)大寫(xiě)的轉(zhuǎn)換

13、,如果此時(shí)輸入為2,則進(jìn)行字符串大寫(xiě)轉(zhuǎn)小寫(xiě)的轉(zhuǎn)換。 輸出部分:先利用INT 21H的9號(hào)功能調(diào)用輸出顯示輸出提示符the result is:,再利用INT 21H的9號(hào)功能調(diào)用輸出顯示轉(zhuǎn)換后的字符串。 3程序流程圖及程序設(shè)計(jì)分析 3.1主程序設(shè)計(jì) 3.1.1流程圖及其分析 主程序的流程圖如圖3-1所示. 開(kāi)始 字符存儲(chǔ)到BUFFER中 發(fā)出警報(bào)聲 字符輸出 輸入字符串 輸出字符串輸入提示符 結(jié)束 判斷字符中是否為回車(chē)? N 判斷字符是否為a~z或者A~Z? 調(diào)用子程序chos完成字符大小寫(xiě)轉(zhuǎn)換 SI增1

14、 轉(zhuǎn)換結(jié)果輸出 換行輸出輸出結(jié)果提示符 0賦值給SI寄存器 Y N Y 圖3-1 主程序流程圖 首先在屏幕上輸出顯示字符串輸入提示符,再進(jìn)行字符串的輸入,然后對(duì)輸入的第一個(gè)字符進(jìn)行判別。如果該字符不等于0DH,則繼續(xù)判斷該字符是否為英文字符。如果結(jié)果為否則產(chǎn)生報(bào)警聲并返回重新輸入數(shù)據(jù),直至輸入的字符符合要求為止;如果結(jié)果為是則將字符存儲(chǔ)到緩沖區(qū),并將字符輸出顯示到屏幕上。然后進(jìn)行下一個(gè)字符的判別,直至出現(xiàn)一個(gè)字符等于0DH,此時(shí)字符串驗(yàn)證完畢,調(diào)用子程序chos進(jìn)行字符串的大小寫(xiě)轉(zhuǎn)換

15、,轉(zhuǎn)換完后結(jié)果輸出顯示到屏幕上,并結(jié)束程序。 3.1.2程序設(shè)計(jì) 程序如下: start: mov ax,data mov ds,ax mov ah,9 ;輸出顯示輸入提示符:‘please input the string:’ lea dx,ms1 int 21h mov si,0 ;源串偏移地址SI置0 again: mov ah,8 ;輸入字符串 int 21h cmp al,13 ;將A

16、L與0DH進(jìn)行比較,若相等,則轉(zhuǎn)移到CHANGE je change cmp al,41h ;將AL與’A’進(jìn)行比較,若AL小于’A’,則轉(zhuǎn)移到SING jb sing cmp al,5bh ;將AL與’Z’進(jìn)行比較,若AL小于等于’Z’,則轉(zhuǎn)移到CHG jb chg cmp al,61h ;將AL與’a’進(jìn)行比較,若AL小于’a’,則轉(zhuǎn)移到SING jb sing cmp al,7bh ;將AL與’z’進(jìn)行比較,若AL小于等于

17、’z’,則轉(zhuǎn)移到CHG jb chg sing: ;輸入為非英文字母,發(fā)出警報(bào),并重新輸入 mov ah,2 mov dl,07h int 21h jmp again chg: ;將英文字母存入緩沖區(qū),并在屏幕中顯示 mov [buffer+si],al mov dl,al mov ah,2 int 21h inc si jmp again change: ;轉(zhuǎn)換過(guò)程

18、 mov [buffer+si],$ call chos ;調(diào)用chos子程序 mov ah,2 mov dl,10 ;回車(chē) int 21h mov dl,13 ;換行 int 21h mov ah,9 ;輸出顯示輸出提示符 lea dx,ms2 int 21h mov ah,9 lea dx,buffer ;屏幕顯示轉(zhuǎn)換結(jié)果 int 21h

19、mov ah,1 int 21h mov ah,4ch ;結(jié)束程序 int 21h 3.2 chos字符串轉(zhuǎn)換子程序設(shè)計(jì) 3.2.1流程圖及其分析 chos字符串轉(zhuǎn)換子程序的流程圖如圖3-2所示 開(kāi)始 輸入字符 將AX,DX存入堆棧 返回 判斷字符是否為1 ? 判斷字符是否為2 調(diào)用子程序aa,完成字符由小寫(xiě)轉(zhuǎn)為大寫(xiě) DX,AX內(nèi)容出棧 換行輸出轉(zhuǎn)換方法選擇提示符:1為轉(zhuǎn)換為大寫(xiě),2為轉(zhuǎn)換為小寫(xiě) 調(diào)用子程序ba,完成字符由大寫(xiě)轉(zhuǎn)為小寫(xiě) Y N N

20、 Y 圖3-2 chos子程序流程圖 首先,應(yīng)該把斷點(diǎn)地址及一些寄存器的值壓入堆棧,保護(hù)現(xiàn)場(chǎng)。在屏幕上輸出轉(zhuǎn)換方法選擇提示符,用戶根據(jù)需要輸入數(shù)據(jù)1或者2。若輸入的數(shù)據(jù)為1則調(diào)用子程序aa,完成字符串由小寫(xiě)轉(zhuǎn)換為大寫(xiě);若輸入的數(shù)據(jù)是2則調(diào)用子程序ba,完成字符串由大寫(xiě)轉(zhuǎn)換為小寫(xiě)。轉(zhuǎn)換完了以后,把斷點(diǎn)地址及一些寄存器的值彈出堆棧,最后返回主程序。 3.2.2程序設(shè)計(jì) 程序如下: chos proc ;chos子程序 push ax ;AX,DX入棧 pus

21、h dx mov ah,2 mov dl,10 ;回車(chē) int 21h mov dl,13 ;換行 int 21h mov ah,9 ;屏幕顯示轉(zhuǎn)換方法選擇提示符 lea dx,ms3 int 21h re: mov ah,8 ;輸入數(shù)據(jù)1或者2,但不顯示 int 21h cmp al,31H ;輸入為1,程序轉(zhuǎn)移至UP je up cmp al,32H

22、 ;輸入為2,程序轉(zhuǎn)移至LO je lo mov ah,2 ;輸入不為1也不為2時(shí),發(fā)出警報(bào),并重新輸入數(shù)據(jù) mov dl,7 int 21h jmp re up: call aa ;調(diào)用子程序aa jmp out1 lo: call ba ;調(diào)用子程序ba out1: pop dx ;DX,AX出棧 pop ax ret

23、 ;返回主程序 chos endp 3.3小寫(xiě)轉(zhuǎn)大寫(xiě)子程序設(shè)計(jì) 3.3.1流程圖及其分析 小寫(xiě)轉(zhuǎn)大寫(xiě)子程序的流程圖如圖3-3所示 開(kāi)始 將SI的值賦給CX,將0賦給DI 將AX,CX,DI存入堆棧 返回 判斷字符是否為為大寫(xiě) ? DI的值增1 將字符轉(zhuǎn)化為大寫(xiě),并存儲(chǔ)取代原來(lái)的字符 取BUFFER中的字符 CX的值減1 判斷CX是否為0 ? Y AX,CX,DI出棧 Y N N

24、 圖3-3 小寫(xiě)轉(zhuǎn)大寫(xiě)子程序aa的流程圖 首先,應(yīng)該把斷點(diǎn)地址及AX,CX,DI寄存器壓入堆棧,保護(hù)現(xiàn)場(chǎng)。再將SI的值賦給CX,將0賦給DI。取出BUFFER單元中的字符,并判斷該字符是否為大寫(xiě)的英文字母,如果是,則不必進(jìn)行轉(zhuǎn)換;如果不是,則將小寫(xiě)字母轉(zhuǎn)化為大寫(xiě)字母并替代原來(lái)的小寫(xiě)字母。循環(huán)判斷其他的字符,直至CX的值為0,結(jié)束循環(huán),返回主程序。 3.3.2程序設(shè)計(jì) 程序如下: aa proc ;子程序aa push ax ;AX,CX,DI入棧 push cx push di

25、 mov cx,si ;CX=SI mov di,0 ;DI=0 top1: mov al,[buffer+di] cmp al,61h ;將AL與’a’進(jìn)行比較,若AL小于’a’,則程序轉(zhuǎn)移到NE1 jb ne1 sub al,20h ;小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母 mov [buffer+di],al ;保存轉(zhuǎn)換后的大寫(xiě)字母 ne1: inc di ;DI增1 loop top1

26、 ;循環(huán)返回TOP1 pop di ;AX,CX,DI出棧 pop cx pop ax ret ;返回 aa endp 3.4大寫(xiě)轉(zhuǎn)小寫(xiě)子程序設(shè)計(jì) 3.4.1流程圖及其分析 大寫(xiě)轉(zhuǎn)小寫(xiě)子程序的流程圖如圖3-4所示 開(kāi)始 將SI的值賦給CX,將0賦給DI 將AX,CX,DI存入堆棧 返回 判斷字符是否為為小寫(xiě) ? DI的值增1 將字符轉(zhuǎn)化為小寫(xiě),并存儲(chǔ)取代原來(lái)的字符 取BUFFER中的字符 CX的值減1 判斷CX是否為0

27、? N AX,CX,DI出棧 Y N Y 圖3-4 大寫(xiě)轉(zhuǎn)小寫(xiě)子程序ba的流程圖 首先,應(yīng)該把斷點(diǎn)地址及AX,CX,DI寄存器壓入堆棧,保護(hù)現(xiàn)場(chǎng)。再將SI的值賦給CX,將0賦給DI。取出BUFFER單元中的字符,并判斷該字符是否為小寫(xiě)的英文字母,如果是,則不必進(jìn)行轉(zhuǎn)換;如果不是,則將大寫(xiě)字母轉(zhuǎn)化為小寫(xiě)字母并替代原來(lái)的大寫(xiě)字母。循環(huán)判斷其他的字符,直至CX的值為0,結(jié)束循環(huán),返回主程序。 3.4.2程序設(shè)計(jì) 程序如下: ba proc ;

28、子程序ba push ax ;AX,CX,DI入棧 push cx push di mov cx,si ;CX=SI mov di,0 ;DI=0 top: mov al,[buffer+di] cmp al,5Ah ;將AL與’Z’進(jìn)行比較,若AL大于’Z’,則程序轉(zhuǎn)移到NE ja ne add al,20h ;大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母 mov [buffer

29、+di],al ;保存轉(zhuǎn)換后的小寫(xiě)字母 ne: inc di ;DI增1 loop top ;循環(huán)返回TOP pop di ;AX,CX,DI出棧 pop cx pop ax ret ;返回 ba endp 4總程序 總程序如下: data segment ms1 db please input the string:,10,13,$ ms2 db th

30、e result is:,10,13,$ ms3 db please choose the type to output(1or2):,10,13 db 1.Uppercase,9,2.Lowercase$ buffer db 200 dup (0) data ends stack segment db 200 dup (?) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax m

31、ov ah,9 lea dx,ms1 int 21h mov si,0 again: mov ah,8 int 21h cmp al,13 je change cmp al,41h jb sing cmp al,5bh jb chg cmp al,61h jb sing cmp al,7bh jb chg sing: mov ah,2 mov dl,07h int 21h jmp again

32、chg: mov [buffer+si],al mov dl,al mov ah,2 int 21h inc si jmp again change: mov [buffer+si],$ call chos mov ah,2 mov dl,10 int 21h mov dl,13 int 21h mov ah,9 lea dx,ms2 int 21h mov ah,9 lea dx,buffer int

33、21h mov ah,1 int 21h mov ah,4ch int 21h ;============================ chos proc push ax push dx mov ah,2 mov dl,10 int 21h mov dl,13 int 21h mov ah,9 lea dx,ms3 int 21h re: mov ah,8 int 21h cmp al,31H j

34、e up cmp al,32H je lo mov ah,2 mov dl,7 int 21h jmp re up: call aa jmp out1 lo: call ba out1: pop dx pop ax ret chos endp ;=========================== ba proc push ax push cx push di mov cx,si mov d

35、i,0 top: mov al,[buffer+di] cmp al,5Ah ja ne add al,20h mov [buffer+di],al ne: inc di loop top pop di pop cx pop ax ret ba endp ;================================== aa proc push ax push cx push di mov cx,si mov

36、di,0 top1: mov al,[buffer+di] cmp al,61h jb ne1 sub al,20h mov [buffer+di],al ne1: inc di loop top1 pop di pop cx pop ax ret aa endp code ends end start 5 課程設(shè)計(jì)心得體會(huì) 經(jīng)過(guò)這幾天的微機(jī)原理課程設(shè)計(jì),我覺(jué)得學(xué)習(xí)像微機(jī)原理與接口技術(shù)這樣實(shí)用的知識(shí),不僅要掌握書(shū)本上的基本內(nèi)容,還要靈活思考,善于變

37、換,這樣才能找到最優(yōu)設(shè)計(jì),達(dá)到事半功倍的效果。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。回顧起此次微機(jī)原理課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整一個(gè)星期的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。 其次,以前對(duì)于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過(guò)一段上機(jī)的實(shí)踐,對(duì)于怎么去排錯(cuò)、查錯(cuò),怎么去看每一步的運(yùn)行結(jié)果,怎么去了解每個(gè)寄存器的內(nèi)容以確保程序的正確性上都有了很大程度

38、的提高。 通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。 在設(shè)計(jì)中遇到了很多編程問(wèn)題,但最后經(jīng)過(guò)自己的努力完成了這次課設(shè)。這讓我明白了只要有恒心,有耐心,就可以達(dá)到自己的目標(biāo),完成任務(wù)! 參考文獻(xiàn) [1] 王萍主編. 微機(jī)原理應(yīng)用實(shí)踐. 機(jī)械工業(yè)出版社,2001.5 [2] 錢(qián)曉捷主編. 新版匯編語(yǔ)言程序設(shè)計(jì). 電子工業(yè)出版社,2007.1 [3] 朱定華主編. 微機(jī)原理與接口技術(shù)學(xué)習(xí)指導(dǎo). 清華大學(xué)出版社,2004.7 [4] 姚燕南、薛鈞義主編. 微型計(jì)算機(jī)原理與接口技術(shù). 高等教育出版社,2004.11 [5] 何小海、嚴(yán)華主編. 微機(jī)原理與接口技術(shù). 科學(xué)出版社,2006.9 [6] 徐建民、王東主編. 匯編語(yǔ)言程序設(shè)計(jì). 電子工業(yè)出版社,2005.9 [7] 周佩玲、彭虎等主編. 微機(jī)原理與接口技術(shù)(基于16位機(jī)). 電子工業(yè)出版社,2007.6 24

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!