《微型計(jì)算機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)鍵盤(pán)錄入轉(zhuǎn)換程序設(shè)計(jì)
《《微型計(jì)算機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)鍵盤(pán)錄入轉(zhuǎn)換程序設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《《微型計(jì)算機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)鍵盤(pán)錄入轉(zhuǎn)換程序設(shè)計(jì)(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、武漢理工大學(xué)《微型計(jì)算機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū) 目 錄 摘要 Ⅰ 1設(shè)計(jì)概述 1 2 程序設(shè)計(jì)相關(guān)知識(shí)介紹 2 2.1 DOS及其功能調(diào)用 2 2.2 ASCII碼 6 3程序設(shè)計(jì) 7 3.1主程序設(shè)計(jì) 7 3.2 JUDGE子程序設(shè)計(jì) 9 3.3 CHANGE子程序設(shè)計(jì) 9 3.4 程序編寫(xiě) 10 4 程序調(diào)試 16 4.1匯編語(yǔ)言源程序的匯編、連接和裝入運(yùn)行 16 4.2調(diào)試過(guò)程與調(diào)試結(jié)果及分析 16 5 設(shè)計(jì)小結(jié) 17 心得體會(huì) 18 參考文獻(xiàn) 19 1設(shè)計(jì)概述 此次課程設(shè)計(jì)為鍵盤(pán)錄入轉(zhuǎn)換程序設(shè)計(jì),滿(mǎn)足以下要
2、求:通過(guò)鍵盤(pán)連續(xù)錄入可顯示多個(gè)字符,遇“.”時(shí)終止;字符串以空格和“.”分隔,輸入完成后,空格前的字符串以正向在屏幕上顯示,“.”前的字符串以反向在屏幕上顯示。 程序設(shè)計(jì)主要包括調(diào)用DOS系統(tǒng)的INT 21H功能從鍵盤(pán)輸入字符然后顯示字符,通過(guò)調(diào)用相應(yīng)的字程序判斷輸入的字符是否為空格和“.”,當(dāng)輸入“.”時(shí)終止字符的輸入,配合調(diào)用另一子程序來(lái)實(shí)現(xiàn)空格前的字符串在屏幕向以正序顯示,“.”前的字符串在屏幕上以反序顯示,從而完成此次課程設(shè)計(jì)。 由于本程序設(shè)計(jì)大量使用調(diào)用DOS系統(tǒng)的INT 21H功能,本報(bào)告書(shū)將首先介紹DOS系統(tǒng)的INT 21H功能,然后進(jìn)行詳細(xì)的程序設(shè)計(jì)。
3、 2 程序設(shè)計(jì)相關(guān)知識(shí)介紹 2.1 DOS及其功能調(diào)用 DOS操作系統(tǒng)從兩個(gè)層次上向用戶(hù)提供與操作系統(tǒng)的接口,普通用戶(hù)可以通過(guò)鍵盤(pán)命令在命令處理模塊層次上和操作系統(tǒng)互交,高級(jí)用戶(hù)可以通過(guò)軟件中斷的方式在DOS的較低層次上合操作系統(tǒng)交互,包括DOS中斷調(diào)用和BIOS功能調(diào)用。 DOS操作系統(tǒng)將輸入輸出管理程序編制成一系列子程序,不僅系統(tǒng)可以使用,用戶(hù)也可以像調(diào)用子程序一樣方便的調(diào)用它們。這些子程序或常駐內(nèi)存,或固化在系統(tǒng)的ROM中。 目前DOS常用的9類(lèi)中斷(20H~27H和2FH)分為兩種: 1. DOS專(zhuān)用中斷:INT22H、IN
4、T23H和INT24H,用戶(hù)不能使用。 2.DOS可調(diào)用中斷:INT20H、INT27H(程序退出)、INT21H(系統(tǒng)功能調(diào)用)、INT25H、INT26H(磁盤(pán)R/W中斷)、INT 2FH(假脫機(jī)打印文件)。 DOS系統(tǒng)功能調(diào)用的方式是通過(guò)執(zhí)行軟中斷指令I(lǐng)NT21H來(lái)實(shí)現(xiàn)的。當(dāng)寄存器AX中設(shè)置不同的值時(shí),該指令將完成不同的功能。在21H類(lèi)型所對(duì)應(yīng)的中斷程序中包含了一系列最常用的功能子程序,這些子程序分別分別實(shí)現(xiàn)外部設(shè)備管理功能、文件讀寫(xiě)和管理功能、目錄管理功能等,所以21H類(lèi)型中斷幾乎包括了整個(gè)系統(tǒng)的功能,系統(tǒng)功能調(diào)用的名稱(chēng)也就由此而來(lái)。 DOS啟動(dòng)成功后,INT21H的中斷向量(中
5、斷處理程序首地址)被初始化在中斷向量表中向量地址為84H到87H的4個(gè)字節(jié)單元內(nèi)。所有系統(tǒng)功能調(diào)用的各自功能的介紹見(jiàn)表1,有些系統(tǒng)調(diào)用功能簡(jiǎn)單,不需要設(shè)置入口參數(shù),或者說(shuō)沒(méi)有出口參數(shù)。詳細(xì)的功能、入口參數(shù)、出口參數(shù)要求可見(jiàn)專(zhuān)門(mén)的手冊(cè)。通常,默認(rèn)標(biāo)準(zhǔn)設(shè)備為:標(biāo)準(zhǔn)輸入設(shè)備(控制臺(tái)輸入)是鍵盤(pán);輸出設(shè)備(控制臺(tái)輸出)是顯示器;標(biāo)準(zhǔn)輔助設(shè)備是第一個(gè)RS232串口異步通訊接口,打印輸出為第一個(gè)并行接口等。 表1 字符I/O系統(tǒng)功能調(diào)用 功能號(hào) 功能 入口參數(shù) 出口參數(shù) 01H 帶回顯的鍵盤(pán)輸入 AL=輸入字符 03H 串行口輸入字符 AL=輸入字符 06H
6、 直接控制臺(tái)I/O DL=FF(輸入) DL=字符(輸出) AL=輸入字符 07H 直接控制臺(tái)輸入(無(wú)回顯) AL=輸入字符 08H 無(wú)回顯的鍵盤(pán)輸入 AL=輸入字符 0AH 字符串緩沖輸入 DS:DX=緩沖區(qū)首址 0BH 取鍵盤(pán)輸入狀態(tài) AL=00無(wú)鍵入 AL=FF有鍵入 0CH 清鍵盤(pán)緩沖區(qū)后,輸入 AL=功能號(hào)(01/06/07/08或0A) 02H 字符顯示 DL=輸出字符 04H 串行口輸出字符 DL=輸出字符 05H 字符打印 DL=輸出字符 09H 字符串顯示 DS:DX=緩沖區(qū)首址
7、 0DH 初始化鍵盤(pán) 1.功能01H、07H和08H 功能描述:從標(biāo)準(zhǔn)輸入設(shè)備(如:鍵盤(pán))讀入一個(gè)字符。該中斷在處理過(guò)程中將一直處于等待狀態(tài)直到有字符可讀為止。該輸入還可被重定向,如果這樣做,則無(wú)法判斷文件是否已到文件尾。 入口參數(shù):AH=01H,過(guò)濾掉控制字符,并回顯。 AH=07H,不過(guò)濾掉控制字符,不回顯。 AH=08H,過(guò)濾掉控制字符,不回顯。 出口參數(shù):AL=輸入字符的ASCII碼。 例如:讀鍵盤(pán)輸入一個(gè)字符并且回顯的程序。 MOV AH,1 INT 21H 2.功能02H 功能描述:向標(biāo)準(zhǔn)輸出設(shè)備(如:屏幕)
8、輸出一個(gè)字符。該輸出還可被重定向,如果這樣做,則將無(wú)法判斷磁盤(pán)是否滿(mǎn)。 入口參數(shù):AH=02H,DL=待輸出字符的ASCII碼。 出口參數(shù):無(wú)。 其基本格式如下: MOV AH,2 MOV DL,要顯示的字符的ASCII INT 21H 3.功能03H 功能描述:從輔助設(shè)備讀入一個(gè)字符,該輔助設(shè)備的缺省值為COM1。 入口參數(shù):AH=03H。 出口參數(shù):AL=讀入字符的ASCII碼。 4.功能04H 功能描述:向輔助設(shè)備輸出一個(gè)字符,該輔助設(shè)備的缺省值為COM1 入口參數(shù):AH=04H,DL=待輸出字符的ASCII碼。 出口參數(shù):無(wú)。 5.功能06H 功能描述
9、:控制臺(tái)(如:鍵盤(pán)、屏幕)輸入/輸出。如果輸入/輸出操作被重定向,那么,將無(wú)法判斷文件是否已到文件尾,或磁盤(pán)已滿(mǎn)。 入口參數(shù):AH=06H,DL=輸入/輸出功能選擇。 出口參數(shù):若DL=00H-FEH,則此功能為輸出,DL為待輸出字符的ASCII碼;若DL=0FFH,則此功能為輸入,此時(shí):若ZF=1,則無(wú)字符可讀,否則,AL=讀入字符的ASCII碼。 6. 功能09H 功能描述:輸出一個(gè)字符串到標(biāo)準(zhǔn)輸出設(shè)備上。如果輸出操作被重定向,那么,將無(wú)法判斷磁盤(pán)已滿(mǎn)。 入口參數(shù):AH=09H,DS:DX=待輸出字符的地址,待顯示的字符串以’$’作為其結(jié)束標(biāo)志,否則會(huì)引起屏幕混亂。顯示時(shí)在字符串
10、結(jié)束前加上回車(chē)及換行的ASCII碼0DH和0AH,可使光標(biāo)自動(dòng)換行。 出口參數(shù):無(wú)。 其基本格式如下: MOV AH,9 LEA DX,<字符串> INT 21H 7.功能0AH 功能描述:從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字節(jié)字符串,遇到“回車(chē)鍵”結(jié)束輸入(輸入的字符在標(biāo)準(zhǔn)的輸出設(shè)備上有回顯)。如果該輸入操作被重定向,那么,將無(wú)法判斷文件是否已到文件尾。 入口參數(shù):AH=0AH,DS:DX=存放輸入字符的起始地址。第一個(gè)字節(jié)為緩沖區(qū)的最大容量,可認(rèn)為是入口參數(shù);第二個(gè)字節(jié)為實(shí)際輸入的字符數(shù)(不包括回車(chē)鍵),可看作出口參數(shù);從第三個(gè)字節(jié)開(kāi)始存放實(shí)際輸入的字符串;字符串以回車(chē)鍵結(jié)束,回車(chē)符
11、是接受的最后一個(gè)字符;若輸入的字符數(shù)超過(guò)緩沖區(qū)的最大容量,則多出的部分被丟棄,系統(tǒng)并發(fā)出響鈴,直到輸入“回車(chē)”鍵才結(jié)束輸入。 出口參數(shù):無(wú)。 例如:用DOS系統(tǒng)調(diào)用0AH從鍵盤(pán)輸入一個(gè)字符串 STR1 DB 10,? 10 DUP(?) …… LEA DX,STR1 MOV AH,OAH INT 21H 8.功能0BH 功能描述:檢查標(biāo)準(zhǔn)輸入設(shè)備上是否有字符可讀,該輸入操作可被重定向。 入口參數(shù):AH=0BH。 出口參數(shù):AL=00H——無(wú)字符可讀;FFH——有字符可讀。 9.功能0CH 功能描述:清空當(dāng)前的標(biāo)準(zhǔn)輸入緩沖區(qū),再讀入字符。其輸入操作可被重定向。 入口
12、參數(shù):AH=0CH,AL=01H、06H、07H、08H或0AH。 出口參數(shù):若入口參數(shù)AL為0AH,則DS:DX=存放輸入字符的起始地址,否則,出口參數(shù)AL=輸入字符的ASCII碼。 2.2 ASCII碼 由于計(jì)算機(jī)硬件只能識(shí)別二進(jìn)制數(shù),字母和字符也必須使用二進(jìn)制編碼來(lái)表示。目前用來(lái)表示字母和字符的二進(jìn)制編碼方式有很多種,最常用的是ASCII碼。ASCII碼又稱(chēng)美國(guó)信息交換標(biāo)準(zhǔn)碼(American Standard Code for Information Interchange) ,多用于輸入輸出設(shè)備(如電傳打字機(jī)),是7位二進(jìn)制編碼。它總共可表示128個(gè)符號(hào),包括26個(gè)英文
13、大寫(xiě)字母, 26個(gè)英文小寫(xiě)字母,0~9共十個(gè)數(shù)字,32個(gè)通用控制字符和34個(gè)專(zhuān)用字符。 在計(jì)算機(jī)中用一個(gè)字節(jié)存放字符編碼,故在ASCII的最高位補(bǔ)0。因此ASCII可表示8位二進(jìn)制或兩位16進(jìn)制數(shù)。本設(shè)計(jì)所需要的“.”的ASCII碼為2EH,空格的ASCII碼為20H,回車(chē)及換行的ASCII碼0DH和0AH。 3程序設(shè)計(jì) 3.1主程序設(shè)計(jì) 程序設(shè)計(jì)主要包括調(diào)用DOS系統(tǒng)的INT 21H功能從鍵盤(pán)輸入字符然后顯示字符,通過(guò)調(diào)用相應(yīng)的字程序判斷輸入的字符是否為空格和“.”,當(dāng)輸入“.”時(shí)終止字符的輸入,配合調(diào)用另一子程序來(lái)實(shí)現(xiàn)空格前的字符串在
14、屏幕向以正序顯示,“.”前的字符串在屏幕上以反序顯示。 由于需要通過(guò)鍵盤(pán)連續(xù)錄入可顯示的字符,需要調(diào)用DOS系統(tǒng)的INT 21H一系列子功能從鍵盤(pán)輸入字符然后顯示出來(lái),最開(kāi)始進(jìn)行初始化,首先調(diào)用09H號(hào)子功能從鍵盤(pán)輸入“PLEASE INPUT THE STRING:”提示輸入一連串字符,以回車(chē)和換行作為結(jié)束自動(dòng)切入另一行從而從鍵盤(pán)輸入字符;通過(guò)調(diào)用JUDGE子程序?qū)斎氲淖址M(jìn)行判斷,判斷其是否為空格鍵和”.”鍵,當(dāng)遇到空格時(shí)繼續(xù)輸入字符,遇到“.”時(shí)終止字符輸入。同時(shí)根據(jù)JUDGE子程序的返回值作為判斷調(diào)用CHANGE子程序,當(dāng)輸入字符沒(méi)有空格時(shí)字符全部以反序輸出顯示在屏幕上,當(dāng)輸入字符
15、有空格時(shí)對(duì)于空格前的字符以正序輸出顯示在屏幕上,對(duì)于“.”前的字符以反序輸出顯示在屏幕上。 另外,考慮到若輸入字符存在“$”,DOS系統(tǒng)的INT 21H下的09H字功能以“$”為結(jié)束符,自動(dòng)結(jié)束字符串的顯示,故當(dāng)輸入”.”后很可能并未終止輸入字符,這將在程序調(diào)試時(shí)得出結(jié)論。 主程序的程序流程圖如下。 偏移地址指針SI清零 INT 21H的09號(hào)子功能顯示STR1字符串 DH清零 段寄存器、堆棧和界面初始化 開(kāi) 始 INT 21H的01H號(hào)子功能接收鍵入字符 調(diào)用JUDGE子程序
16、 INT 21H的01H號(hào)子功能接收鍵入字符 CF=1? DH=1? ‘$’傳送到[STRING+SI+1] 調(diào)用CHANGE子程序 SI加1 Y N INT 21H的02H號(hào)子功能顯示回車(chē)和換行 INT 21H的09號(hào)子功能顯示STR2和STRING字符串 DI加1 N Y 結(jié) 束 圖1 主程序設(shè)計(jì)流程圖 3.2 JUDGE子程序設(shè)計(jì) 對(duì)輸入的字符首先判斷其是否為空格鍵,若為空格鍵則將DH和CF置1,并且將數(shù)輸入的字符送到STRING中,若不為空格鍵則繼續(xù)
17、判斷其是否為“.”鍵,則將CF置0,將其值返回后終止輸入字符。其程序流程圖如下。 將SI傳送給DI AL=20H? 將1傳送給DH AL=2EH? N Y JUDGE子程序 STC AL傳送到STRING Y N CF=1 圖2 JUDGE子程序流程圖 返 回 3.3 CHANGE子程序設(shè)計(jì) 由于字符串處理在堆棧中進(jìn)行,首先將斷點(diǎn)數(shù)據(jù)壓入堆棧,以便調(diào)用子程序后可以正確的返回主程序中,對(duì)輸入的數(shù)據(jù)的長(zhǎng)度進(jìn)行處理,計(jì)算設(shè)置SI 和DI 的初值,設(shè)置循環(huán),將循環(huán)次數(shù)賦予CL從而控制循環(huán),然后將[S
18、TRING+SI]傳送到AL中,用XCHG將AL和[STRING+DI]數(shù)據(jù)交換,循環(huán)結(jié)束后從而使得正序輸入的數(shù)據(jù)以反向輸出顯示在屏幕上,最后將斷點(diǎn)數(shù)據(jù)出堆棧返回到主程序。子程序流程圖如下。 CHANGE子程序 斷點(diǎn)數(shù)據(jù)壓入堆棧 設(shè)置SI和DI初值 將[STRING+SI]傳送到AL 將[STRING+DI]與 AL數(shù)據(jù)交換 將AL傳送到 [STRING+SI] SI減1,DI加1 斷點(diǎn)數(shù)據(jù)出堆棧 CF=0? 返 回 N Y 圖3 CH
19、ANGE子程序流程圖 3.4 程序編寫(xiě) 根據(jù)分析和程序流程圖,編寫(xiě)以下程序。 %定義數(shù)據(jù)段% DATA SEGMENT STR1 DB‘PLEASE INPUT THE STRING:’,0AH,0DH,’$’ STR2 DB ‘THE RESULT IS:’,0AH,0DH,’$’ STRING DB 100 DUP(?) MENU1 DB WELCOME SUNLIFEI DE DESIGN $ DATA ENDS SHUCHU MACRO OP1,OP2,OP3,OP4,OP5,OP6 %循環(huán)輸出,用于初始化界面周邊的笑臉?lè)?/p>
20、% MOV CX,0 MOV DH,OP1 %起始行 MOV DL,OP2 %起始列% OP6: MOV AH,02H MOV BH,01H INT 10H PUSH CX MOV AH,0AH MOV AL,OP3 %要顯示的字符 MOV CX,01H MOV BH,00H INT 10H POP CX INC CX INC OP4 %這里指的要循環(huán)輸出的是行還是列% CMP CX,OP5 %循環(huán)次數(shù)% JNE OP6 ENDM ME
21、NU MACRO OP1,OP2,OP3 %用于屏幕上文字的輸出% MOV CX,0 %1,2為起始輸出的行、列,3為字符串的地址% MOV AH,02H MOV BH,00H MOV DH,OP1 MOV DL,OP2 INT 10H LEA DX,OP3 MOV AH,9 INT 21H ENDM CLS MACRO OP1,OP2,OP3,OP4 %用于清屏,分別是起止的行和列 MOV AH,6 MOV BH,17H MOV AL,0 MOV CH,OP1 MOV CL,OP2 MOV DH,OP3 MOV DL,OP4
22、 INT 10H MOV AH,2 MOV BH,0 MOV DH,0 MOV DL,0 INT 10H ENDM %定義堆棧段% STACK SEGMENT DB 100 DUP(?) STACK ENDS %定義代碼段% CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK %主程序設(shè)計(jì)% START:MOV AX,DATA %將數(shù)據(jù)段地址傳送給DS% MOV DS,AX MOV AX,STACK %將堆棧段地址傳送給SS%
23、 MOV SS,AX MOV SI,0 %源字符串首地址置0% MOV AH,9 %調(diào)用DOS的09H功能號(hào)功能,將輸入的字符串顯示% LEA DX,STR1 %將STR1的有效地址傳送給DX% INT 21H %調(diào)用DOS的21H中斷% XOR DH,DH %異或?qū)H清零% LOOP1:MOV AH,01H %調(diào)用DOS的01H功能號(hào)功能,帶回顯的鍵盤(pán)輸入% INT 21H CALL JUDGE
24、 %調(diào)用JUDGE子程序% JC DONE %進(jìn)位標(biāo)志CF=1時(shí)跳轉(zhuǎn)% INC SI %SI加1% JMP LOOP1 %無(wú)條件跳轉(zhuǎn)% DOWN: CMP DH,1 %將DH與1比較% JE NEXT %DH=1時(shí)跳轉(zhuǎn)% DEC DI %DI減1% NEXT: MOV[STRING+SI+1],‘$’ %傳送指令% CALL CHANGE %調(diào)用CHANGE子
25、程序% MOV AH,02H %調(diào)用DOS的02H功能號(hào)功能,將輸入的字符串顯示 MOV DL,0DH %將字符串結(jié)束前的回車(chē)顯示回來(lái)% INT 21H %調(diào)用DOS的21H中斷% MOV DL,0AH %將字符串結(jié)束前換行顯示出來(lái)% INT 21H %調(diào)用DOS的21H中斷% MOV AH,09H %調(diào)用DOS的09H功能號(hào)功能,將輸入的字符串顯示%
26、LEA DX,STR2 %將STR2的有效地址傳送給DX% INT 21H %調(diào)用DOS的21H中斷% MOV AH,09H %調(diào)用DOS的09H功能號(hào)功能,將輸入的字符串顯示% LEA DX,STRING %將STRING的有效地址傳送給DX% INT 21H %調(diào)用DOS的21H中斷% MOV AH,01H %調(diào)用DOS的01H功能號(hào)功能,帶回顯的鍵盤(pán)輸入% I
27、NT 21H MOV AH,4CH %結(jié)束程序% INT 21H %空格和“.”判斷子程序% JUDGE PROC CMP AL,20H %將輸入的數(shù)據(jù)與空格鍵比較% JNZ NEXT1 %輸入數(shù)據(jù)不為空格鍵時(shí)跳轉(zhuǎn)到NEXT1% MOV DI,SI %輸入數(shù)據(jù)為空格鍵時(shí)傳送數(shù)據(jù)% MOV DH,01H %傳送指令% NEXT1: CMP AL,2EH %將輸入
28、的數(shù)據(jù)與“.”比較% JNZ NEXT2 %輸入數(shù)據(jù)不為“.”時(shí)跳轉(zhuǎn)NEXT2% STC JMP NEXT3 %跳轉(zhuǎn)到NEXT3% NEXT2: CLC %標(biāo)志位CF清零% NECT3: MOV[STRING+SI],AL %傳送指令% RET %返回指令% JUDGE ENDP %字符串反向屏幕顯示子程序% CHANGE PROC PUSH AX
29、 %堆棧操作保護(hù)現(xiàn)場(chǎng)% PUSH BX PUSH CX PUSH SI PUSH DI MOV AX,SI %傳送指令% SUB AX,DI %將兩者相加結(jié)果送AX% DEC AX %AX加1% MOV BL,02H %傳送指令% DIV BL %AX除以2%
30、 MOV CL,AL %傳送指令% XOR CH,CH %將CH清零% SUB SI,CX %兩數(shù)相減將結(jié)果送SI% ADD DI,CX %將兩者相加結(jié)果送AX% LOOP2: MOV AL,[STRING+SI] %傳送指令% XCHG [STRING+DI],AL %將兩者數(shù)據(jù)交換% MOV [STRING+SI],AL %傳送指令% DEC DI
31、 %DI減1% INC SI %SI加1% LOOP LOOP2 %循環(huán)LOOP2過(guò)程% POP DI %恢復(fù)現(xiàn)場(chǎng)% POP SI POP CX POP BX POP AX RET CHANGE ENDP %子程序結(jié)束% CODE ENDS
32、 %代碼結(jié)束% END START 4 程序調(diào)試 4.1匯編語(yǔ)言源程序的匯編、連接和裝入運(yùn)行 匯編語(yǔ)言源程序編寫(xiě)好以后,并不能直接運(yùn)行,必須在匯編環(huán)境下對(duì)源程序進(jìn)行匯編和連接,生成可執(zhí)行的文件后才能運(yùn)行程序。一般需經(jīng)過(guò)4個(gè)步驟。 編輯:首先通過(guò)編輯器輸入、建立匯編源程序(文件名.ASM),并以ASCII碼的形式存入內(nèi)存緩沖區(qū)。 匯編:將匯編源程序(文件名.ASM)經(jīng)匯編程序翻譯后生成擴(kuò)展名為.OBJ的目標(biāo)文件、擴(kuò)展名為.LST的列表文件和擴(kuò)展名為.CRF的交叉索引文件。 通常目標(biāo)文件時(shí)必須建立的,他包含了程序中所有機(jī)器代碼。列表文件包含了源程序、目標(biāo)代碼、
33、注釋等全部信息,列表文件可供打印??晒卜终{(diào)試檢查用。交叉索引文件時(shí)用來(lái)了解源程序中的符號(hào)定義及引用情況的。后面兩個(gè)文件不是必需的,可通過(guò)匯編時(shí)的命名加以選擇,打入“回車(chē)鍵”就是不需要。 連接:將.OBJ文件(一個(gè)或多個(gè))與系統(tǒng)提供的.LIB庫(kù)文件連接,形成.EXE可執(zhí)行文件和.MAP內(nèi)存分配文件。連接后的殼執(zhí)行文件(.EXE)是可以運(yùn)行的文件。 調(diào)試:對(duì).EXE文件進(jìn)行調(diào)試。 4.2調(diào)試過(guò)程與調(diào)試結(jié)果及分析 通過(guò)以上步驟在MF2KI軟件中進(jìn)行調(diào)試,首先輸入源程序,點(diǎn)擊匯編后,檢查是否存在錯(cuò)誤,修改好所有出現(xiàn)的錯(cuò)誤后,當(dāng)輸入“abcdefgh$ xyz .n”后,其結(jié)果如下,由于輸入字
34、符存在“$”,DOS系統(tǒng)的INT 21H下的09H字功能以“$”為結(jié)束符,自動(dòng)結(jié)束字符串的顯示,故當(dāng)輸入”.”后并未終止輸入字符。 圖4 有“$”存在時(shí)的調(diào)試結(jié)果 當(dāng)輸入字符“abcdefg xyz xyzabcdefgh.”時(shí),其結(jié)果如下。當(dāng)輸入字符有“.”時(shí)終止字符輸入 ,由于存在空格鍵故輸入字符中空格鍵前的字符串以正序顯示,最后一個(gè)空格鍵后的字符串以反序顯示在屏幕上。 圖5 有空格鍵時(shí)的調(diào)試結(jié)果 當(dāng)輸入字符“abcdefgxyzxyzabcdefgh.”時(shí),其結(jié)果如下。當(dāng)輸入字符有“.”時(shí)終止字符輸入 ,由于不存在空格鍵故輸入字符串以反序顯示在屏幕上。 圖6 有
35、空格鍵時(shí)的調(diào)試結(jié)果 通過(guò)以上調(diào)試及分析所編寫(xiě)的程序正確能滿(mǎn)足程序要求。 5 設(shè)計(jì)小結(jié) 此次程序設(shè)計(jì)主要包括調(diào)用DOS系統(tǒng)的INT 21H功能從鍵盤(pán)輸入字符然后顯示字符,通過(guò)調(diào)用相應(yīng)的字程序判斷輸入的字符是否為空格和“.”,當(dāng)輸入“.”時(shí)終止字符的輸入,配合調(diào)用另一子程序來(lái)實(shí)現(xiàn)空格前的字符串在屏幕向以正序顯示,“.”前的字符串在屏幕上以反序顯示,通過(guò)編寫(xiě)相應(yīng)的主程序和JUDGE、CHANGE兩個(gè)子程序,經(jīng)反復(fù)調(diào)試、運(yùn)行及修改得出滿(mǎn)足要求的程序,從而完成此次課程設(shè)計(jì)。 心得體會(huì) 在畫(huà)家眼里,設(shè)計(jì)是一幅清明上河圖或是一幅向日葵;在建筑師眼中,設(shè)計(jì)是昔日鎏金般的圓明園或是今日一塑自由女神像;
36、在電子工程師心中,設(shè)計(jì)是貝爾實(shí)驗(yàn)室的電話(huà)機(jī)或是華為的程控交換機(jī)。凡此種種,但凡涉及設(shè)計(jì)都是一件美好的事情,因?yàn)樗芙o人以美的幻想,因?yàn)樗芙o人以金般財(cái)富,因?yàn)樗芙o人以成就之感,更為現(xiàn)實(shí)的是她能給人以成長(zhǎng)以及成長(zhǎng)所需的營(yíng)養(yǎng),而這種營(yíng)養(yǎng)更是一種福祉,一輩子消受不竭享用不盡。我就是以此心態(tài)對(duì)待此次《微機(jī)原理》課程設(shè)計(jì)的,所謂“態(tài)度決定一切”,于是偶然又必然地收獲了諸多,概而言之,大約以下幾點(diǎn): 溫故而知新。課程設(shè)計(jì)發(fā)端之始,思緒全無(wú),舉步維艱,對(duì)于理論知識(shí)學(xué)習(xí)不夠扎實(shí)的我深感“書(shū)到用時(shí)方恨少”,于是想起圣人之言“溫故而知新”,便重拾教材與實(shí)驗(yàn)手冊(cè),對(duì)知識(shí)系統(tǒng)而全面進(jìn)行了梳理,遇到難處先是苦思冥
37、想再向同學(xué)請(qǐng)教,終于熟練掌握了基本理論知識(shí),學(xué)會(huì)了如何思考的思維方式,找到了設(shè)計(jì)的靈感。 思路即出路。當(dāng)初沒(méi)有思路,誠(chéng)如舉步維艱,茫茫大地,不見(jiàn)道路。在對(duì)理論知識(shí)梳理掌握之后,茅塞頓開(kāi),柳暗花明,思路如泉涌,高歌“條條大路通羅馬”。頓悟,沒(méi)有思路便無(wú)出路,原來(lái)思路即出路。 實(shí)踐出真知。文革之后,關(guān)于真理的大討論最終結(jié)果是“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”,自從耳聞以來(lái),便一直以為馬克思主義中國(guó)化生成的教條。時(shí)至今日,課程設(shè)計(jì)基本告成,才切身領(lǐng)悟“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”,才明曉實(shí)踐出真知。 創(chuàng)新求發(fā)展。“創(chuàng)新”目前在我國(guó)已經(jīng)提升到國(guó)家發(fā)展戰(zhàn)略地位,足見(jiàn)“創(chuàng)新”的舉足輕重。而在DVD產(chǎn)品
38、上市之初及以后相當(dāng)長(zhǎng)時(shí)間內(nèi),原本前景看好的國(guó)內(nèi)市場(chǎng)卻使國(guó)內(nèi)DVD生產(chǎn)商無(wú)利可圖,只因核心技術(shù)受制于人,每臺(tái)售出總要交付高額專(zhuān)利技術(shù)使用費(fèi)。因此,我們?cè)谡n程設(shè)計(jì)中不忘在小處創(chuàng)新,未必是創(chuàng)新技術(shù),但凡創(chuàng)新思維亦可,未必成功,只要實(shí)現(xiàn)創(chuàng)新思維培育和鍛煉即可。 過(guò)而能改,善莫大焉。至善至美,是人類(lèi)永恒的追求。但是,不從忘卻“金無(wú)足赤,人無(wú)完人”,我們換種思維方式,去惡亦是至善,改錯(cuò)亦為至美。在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的仿真環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。 最后,我想我必須對(duì)我的指導(dǎo)老師說(shuō)一聲——謝謝! 參考文獻(xiàn) [1] 陸紅偉. 微機(jī)原理實(shí)驗(yàn)與課程設(shè)計(jì)指導(dǎo)書(shū). 中國(guó)電力出版社 . 2006. 5 [2] 呂淑萍. 微型計(jì)算機(jī)原理及應(yīng)用. 哈爾濱工程大學(xué)出版社 . 2004. 6 [3] 戴梅萼. 微型計(jì)算機(jī)技術(shù)及應(yīng)用. 清華大學(xué)出版社 . 2005. 2 [4] 張小鳴. 微機(jī)原理與接口技術(shù). 清華大學(xué)出版社 . 2009.6 [5] 姚燕南. 微型計(jì)算機(jī)原理. 西安電子科技大學(xué)出版社 . 2005.9 19
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第十二章抗寄生病藥課件
- 第六章-質(zhì)量與密度復(fù)習(xí)(共46張PPT)
- 十二月花名歌-PPT
- 縱觀近幾的高考試題得知:高考命題的角度主要集中在我國(guó)(與“國(guó)家”有關(guān)的文檔共48張)
- 高三化學(xué)-五年高考三年模擬-專(zhuān)題9-弱電解質(zhì)的電離平衡課件-新課標(biāo)
- 全脊髓麻醉一例-PPT
- 幼兒園教師專(zhuān)業(yè)標(biāo)準(zhǔn)
- 能源資源的開(kāi)發(fā)
- 便血-診斷學(xué)-PPT
- 麻疹病人的護(hù)理
- 部編版二年級(jí)上冊(cè)語(yǔ)文16-朱德的扁擔(dān)--課件
- 發(fā)揮鄉(xiāng)村一體化優(yōu)勢(shì)探索慢病防治新模式
- adidas_三葉草球鞋如何鑒別真假_最權(quán)威的鑒定方式
- 倉(cāng)庫(kù)規(guī)劃方案
- 第版內(nèi)科學(xué)心內(nèi)科心力衰竭心衰