微機(jī)原理課設(shè),數(shù)據(jù)計(jì)算處理_第1頁(yè)
微機(jī)原理課設(shè),數(shù)據(jù)計(jì)算處理_第2頁(yè)
微機(jī)原理課設(shè),數(shù)據(jù)計(jì)算處理_第3頁(yè)
微機(jī)原理課設(shè),數(shù)據(jù)計(jì)算處理_第4頁(yè)
微機(jī)原理課設(shè),數(shù)據(jù)計(jì)算處理_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)學(xué)生姓名:指導(dǎo)教師:專業(yè)班級(jí):工作單位:題 目: 計(jì)算程序(2)將這兩個(gè)數(shù)以二進(jìn)制形式輸出,要求輸出的 0 和 1 顏色交替變化。(3)找出這兩個(gè)數(shù)中的偶數(shù),若有則以十進(jìn)制輸出,若無(wú),輸出“NO”。(4)計(jì)算這兩個(gè)數(shù)的平方和。(5)數(shù)據(jù)的輸入和結(jié)果的輸出都要有必要的提示,且提示獨(dú)占一行。要求完成的主要任務(wù):(1) 設(shè)計(jì)任務(wù)及要求分析(2) 方案比較及認(rèn)證說(shuō)明(3) 系統(tǒng)原理闡述(4) 硬件設(shè)計(jì)課題需要說(shuō)明:硬件原理,電路圖,采用器件的功能說(shuō)明(5) 軟件設(shè)計(jì)課題需要說(shuō)明:軟件思想,流程圖,源程序及程序注釋(6) 調(diào)試記錄及結(jié)果分析(7) 總結(jié)(8)

2、參考資料(9) 附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實(shí)物圖時(shí)間安排:1 月 2 月 3日:收集資料,方案選擇1 月 4 月 7日:整體流程,程序細(xì)節(jié)1 月 8 月 10日:調(diào)試程序,報(bào)告撰寫(xiě)1 月 10:交設(shè)計(jì)報(bào)告,程序演示,答辯指導(dǎo)教師簽名:年月日系主任(或責(zé)任教師)簽名:年月日微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)目錄摘要.11任務(wù)要求分析.22方案比較及認(rèn)證說(shuō)明.33系統(tǒng)原理.43.1整體設(shè)計(jì)原理.43.2 DOS和BIOS部分功能調(diào)用說(shuō)明.44硬件及程序設(shè)計(jì).64.1硬件說(shuō)明.64.2主程序設(shè)計(jì).64.3功能一子程序設(shè)計(jì).94.4功能二子程序設(shè)計(jì).124.5功能三子程序設(shè)計(jì).1

3、44.6功能四子程序設(shè)計(jì).184.7完成退出程序.205結(jié)果分析.216程序調(diào)試過(guò)程中遇到的問(wèn)題.21心得體會(huì).22參考文獻(xiàn).23微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)摘要本設(shè)計(jì)通過(guò)調(diào)用DOS0AH 功能調(diào)用實(shí)現(xiàn)從鍵盤(pán)上輸入兩個(gè)四位的 16 過(guò)邏輯移位指令實(shí)現(xiàn) 16 進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),再調(diào)用 BIOS9 號(hào)功能調(diào)用,設(shè)置顏色在當(dāng)前光標(biāo)位置顯示字符,為了判斷輸入 16 進(jìn)制數(shù)的奇偶性,主要通過(guò)對(duì)數(shù)值某位操作,實(shí)現(xiàn)對(duì)數(shù)值奇偶性的判斷。轉(zhuǎn)換成 10 進(jìn)制數(shù)則通過(guò)算術(shù)運(yùn)算指令 DIV 實(shí)現(xiàn),輸出則通過(guò)DOS 單字符輸出 2 號(hào)功能調(diào)用和多字符輸出 9 運(yùn)算指令 MUL ADD DOS 功能調(diào)用實(shí)現(xiàn)。關(guān)鍵

4、字BIOS 和 DOS 功能調(diào)用。1微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)計(jì)算程序1 任務(wù)要求分析 4 位的十六進(jìn)制數(shù),進(jìn)制數(shù)數(shù)字和字母再輸入和輸出上的區(qū)別,與十進(jìn)制數(shù)和二進(jìn)制數(shù)輸出的區(qū)別。第二要求將輸入的兩個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),在屏幕上顯示輸出,而且輸出法。第三要求判斷這兩個(gè)已輸入的十六進(jìn)制數(shù)的奇偶性,將偶數(shù)輸出,當(dāng)沒(méi)有偶數(shù)時(shí)要輸出是有選擇性的輸出,及條件輸出。同樣涉及字符和字符串的輸出。第四要求計(jì)算已輸入的兩個(gè)十六進(jìn)制數(shù)的平方和,并輸出顯示。首先要實(shí)現(xiàn)平方運(yùn)這里同樣涉及字符或字符串的輸出。第五要求數(shù)據(jù)的輸入和輸出都有必要的提示語(yǔ)句,且獨(dú)占一行。這里主要要實(shí)現(xiàn)在根據(jù)提示語(yǔ)句的長(zhǎng)度來(lái)選擇,最后

5、還要設(shè)置功能完成后的退出標(biāo)志。功能要求結(jié)構(gòu)圖如圖 1 所示。數(shù)圖 1功能要求結(jié)構(gòu)圖2微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)2 方案比較及認(rèn)證說(shuō)明1)本設(shè)計(jì)過(guò)程中完成從鍵盤(pán)輸入兩個(gè)十六進(jìn)制數(shù)功能有兩種方案可以實(shí)現(xiàn)。方案一:調(diào)用DOS-21號(hào)中斷1號(hào)和2號(hào)功能調(diào)用,單字符輸入和單字符輸出,逐個(gè)字符輸入輸出。方案二:調(diào)用DOS-21號(hào)中斷0AH號(hào)功能調(diào)用,多字符輸入輸出。由于要從鍵盤(pán)輸入兩個(gè)四位的十六進(jìn)制數(shù),為了簡(jiǎn)化步驟,應(yīng)選擇方案二來(lái)實(shí)現(xiàn)。2)本設(shè)計(jì)過(guò)程中完成將十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)功能有兩種方案可以實(shí)現(xiàn)。方案一:取一個(gè)十六進(jìn)制數(shù),先轉(zhuǎn)換成十進(jìn)制數(shù),再通過(guò)除法指令,不斷除以2,求余數(shù)。運(yùn)算較復(fù)雜。而且

6、邏輯移位操作結(jié)果更簡(jiǎn)單,更方便輸出處理,因此應(yīng)選擇方案二。為了簡(jiǎn)化程序,提高程序運(yùn)行效率,在實(shí)際編程過(guò)程中應(yīng)選擇最佳方案。3微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)3系統(tǒng)原理3.1整體設(shè)計(jì)原理由功能流程圖可知,功能是順序?qū)崿F(xiàn)的。所以整個(gè)功能實(shí)現(xiàn)可以通過(guò)一個(gè)主程序調(diào)DOS進(jìn)制數(shù)的子程序,子程序主要通過(guò)DOS 單字符輸入1號(hào)功能調(diào)用,單字符輸出2號(hào)功能9號(hào)功能調(diào)用和過(guò)程中4CH 單字符輸入1號(hào)功能調(diào)用,單字符輸出2號(hào)功能調(diào)用,多字符輸出9號(hào)功能調(diào)用,中4CH號(hào)功能調(diào)用和BIOS功能調(diào)用上實(shí)現(xiàn)。第三項(xiàng)功能也是通過(guò)調(diào)用子程序?qū)崿F(xiàn),子程序主要通過(guò)對(duì)數(shù)值DOS單字符輸出2號(hào)功能調(diào)用和多字符輸出9單字符輸出2結(jié)構(gòu),

7、是一個(gè)順序結(jié)構(gòu)。大部分功能實(shí)現(xiàn)過(guò)程都要引用DOS和BIOS功能調(diào)用。3.2 DOS和BIOS部分功能調(diào)用說(shuō)明1)DOS功能調(diào)用(1)鍵盤(pán)輸入一個(gè)字符并回顯(1號(hào)功能)輸入?yún)?shù)無(wú),返回結(jié)果AL字符。(2)顯示一個(gè)字符,光標(biāo)跟隨字符移動(dòng)(2號(hào)功能)DL=待顯字符的ASCII碼,無(wú)返回結(jié)果。(3)多個(gè)字符輸出到屏幕顯示(9號(hào)功能調(diào)用)入口參數(shù):DS:DX=輸出字符緩沖區(qū)首地址。出口參數(shù):無(wú)。該功能對(duì)輸出字符的個(gè)數(shù)沒(méi)有要求,但輸出字符串亞奧$結(jié)束。4微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)1)BIOS功能調(diào)用(1) 設(shè)置光標(biāo)位置(2號(hào)功能)出口參數(shù):無(wú)。根據(jù)DX確定了光標(biāo)位置。(2) 在當(dāng)前光標(biāo)位置寫(xiě)字符和屬

8、性(9號(hào)功能)入口參數(shù):AH=9,BH=頁(yè)號(hào),AL=字符的ASCII碼,BL=字符屬性,CX=寫(xiě)入字符數(shù)。出口參數(shù):無(wú)。(3)讀當(dāng)前光標(biāo)位置(3號(hào)功能)出口參數(shù):DH=行號(hào),DL=列號(hào),CX=光標(biāo)大小。(4)在當(dāng)前光標(biāo)位置寫(xiě)字符和屬性(9號(hào)功能)入口參數(shù):AH=9,BH=頁(yè)號(hào),AL=字符的ASCII碼,BL=字符屬性,CX=寫(xiě)入字符數(shù)。出口參數(shù):無(wú)。表1 彩色文本方式顯示屬性字節(jié)76 5 4R G B5微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)4 硬件及程序設(shè)計(jì)4.1 硬件說(shuō)明本設(shè)計(jì)要求在 MF2KP微機(jī)原理集成開(kāi)發(fā)環(huán)境中調(diào)試運(yùn)行,無(wú)其他硬件要求。4.2 主程序設(shè)計(jì)主程序編程思路如下:定義數(shù)據(jù)段,提示字

9、符或字符串都定義在數(shù)據(jù)段,在數(shù)據(jù)段內(nèi)預(yù)留存儲(chǔ)空間以備子程序調(diào)用過(guò)程中占用定義堆棧段,盡量把堆棧預(yù)留空間設(shè)置大一點(diǎn),因?yàn)樽映绦蛘{(diào)用過(guò)程中,要進(jìn)行大量的反復(fù)保存各寄存器內(nèi)的內(nèi)容。然后定義代碼段,給各個(gè)段寄存器分配段。給每個(gè)段寄存器指定段地址。然后調(diào)用各子程序?qū)崿F(xiàn)各項(xiàng)功能,在子程調(diào)用前設(shè)置好相關(guān)參數(shù)。最后設(shè)置一個(gè)程序執(zhí)行完后的退出人際交互命令。主程序流程圖如圖 2 所示。16進(jìn)制圖 2主程序流程圖6微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)data segmentXYZSDW ?DW ?DW ?DW ?DISNODB 0AH,NO$BUFF3 DB ,0DH,SHUCHU ER JIN ZHI SHU$BUF

10、F4 DB ,0DH,OU SHU SHI JIN ZHI SHU CHU$BUFF5 DB ,0DH,SHUCHU CHU PING FANG HE$BUFF2DB 0AH,0DH,IF YOU WANT TO QUIT,PLEASE PRESS Q/q$stridb input a number 0ah,0dh,$ ;顯示提示文字maxdb5actlenstringnumendsdb ?db 5 dup(?)dw 2 dup(?);保留輸入數(shù)值的存儲(chǔ)空間datastack1segmentdw 256h 0);保留堆??臻gstack1endscodesegmentassumeds:data,

11、ss:stack1,cs:code:mov ax,datamov ds,axcallinputmov ax,nummov num+2,ax7微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)mov dl,0ahmov ,2int 21h;換行;單字符輸出調(diào)用callinput;調(diào)用子程序input;-十六進(jìn)制轉(zhuǎn)換成二進(jìn)制LEA,BUFF3MOVAH,9;顯示提示語(yǔ)句INT21HMOV,0AHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV,0DHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV BX ,numMOV CX,8XOR ,DXMOV,5;轉(zhuǎn)換顯示第一個(gè)數(shù)CALLHEE12RMOV BX

12、,num+2MOV CX,8XOR ,DXMOV,6;轉(zhuǎn)換顯示第二個(gè)數(shù)CALLHEE12R.codeendsend start8微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)4.3 功能一子程序設(shè)計(jì)輸入兩個(gè)十六進(jìn)制數(shù)編程思路:通過(guò)DOS 09H號(hào)功能調(diào)用顯示提示語(yǔ)句字符串INPUT-input a 0 9,AF和af之間。輸入的數(shù)字合法時(shí)則保留在顯示在屏幕上,若不合法則提示從新input子程序。對(duì)于合法字符,若是在0 9之間,則將其加30h,轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值,調(diào)用DOS單個(gè)字符輸出顯示2號(hào)功能調(diào)用,顯示該數(shù)值。當(dāng)輸入數(shù)值在AF則將其加37H轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值,當(dāng)輸入數(shù)值在af則將其加37H

13、轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值,然后調(diào)用DOS單個(gè)字符輸出顯示2述過(guò)程,執(zhí)行完后返回主程序。該子程序程序流程圖如圖3所示:開(kāi)始1保存子程序中用到的寄存器AX,BX,CX,DX,SIJBENCMP ALf輸入數(shù)值2JAJBENDEC CXCX=0?CMP AL9NCX=0?2Y2JA1Y2圖3 輸入十六進(jìn)制數(shù)子程序流程圖9微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)輸入十六進(jìn)制數(shù)子程序部分程序如下:.mov dx,offset strimov ,9h;顯示字符串;多字符顯示輸出調(diào)用int 21hleadx,maxmov ,0ahint 21h;調(diào)用DOS中斷輸入一個(gè)四位十六進(jìn)制;取字符串首址leasi,stri

14、ngmov cx,4xor dx,dx;將清零get:push cxmov al,sicmpal0jb returncmpal,Fjaxiaoxie;取一個(gè)字符;檢查輸入的字符是否在之間;否,返回xiaoxie:cmpal,fjareturncmpal9jbe deci;轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字cmpal,ajb daxiesub al,20h;值為先減7,再減30;值為先減20,再減37daxie:sub al,07hdeci:sub al,30hcbwmov cl,4shl dx,clincsipop cxloop get.微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)4.4 功能二子程序設(shè)計(jì)將已輸入的兩個(gè)進(jìn)制

15、數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)夜色交替變化輸出編程思路:對(duì)于十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),可以選擇運(yùn)用位操作指令。每個(gè)四位十六進(jìn)制數(shù)對(duì)1應(yīng)16位二進(jìn)制數(shù)。由于要顯示的二進(jìn)制數(shù)與十六進(jìn)制數(shù)高低位相對(duì)應(yīng),所以采用邏輯左移移位指令SHL,移出的位進(jìn)入符號(hào)標(biāo)志位CF,然后將,利用帶進(jìn)位加法將CF中的值移入到AH。由于要設(shè)置顯示0或1的夜色,所以需要調(diào)用BIOS 10號(hào)中斷中在當(dāng)前光標(biāo)位置寫(xiě)字符和屬性9號(hào)功能,先將AH的內(nèi)容加30H,將0或1轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼值,然后將ASCII值移入到ALBL=04H,再將功能調(diào)用號(hào)9移入到AH,最后進(jìn)行10中斷。由于要交替變換夜色,所以將外循環(huán)設(shè)置為8BL=01H。要顯示兩個(gè)十

16、六進(jìn)制數(shù),則需要調(diào)用兩次該子程序。程序流程圖如圖5所示。3斷NY3圖5十六進(jìn)制轉(zhuǎn)換成二進(jìn)制數(shù)程序流程圖微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)子程序部分程序如下:HEE12RPROC ;-16 進(jìn)制轉(zhuǎn)化成二進(jìn)制子程序開(kāi)始PUSHAXPUSH BXPUSH CXPUSH DXPUSHFLOOP1:XOR ,AXSHL ,1ADC AH,0PUSH BXPUSH CXMOVCX,1MOV,04HMOVBH,0ADD ,30HMOV ,AHMOVAH,9INT 10HPOPCX;顯示一個(gè)字符;背景色為黑色,顯示顏色為紅色;要顯示的0或1在中MOVAH,2MOVBH,0INCDL;設(shè)置光標(biāo)移動(dòng)INT10HPO

17、PBXXOR,AXSHL ,1.子程序程序運(yùn)行結(jié)果如判斷輸入兩個(gè)數(shù)的奇偶性,以十進(jìn)制輸出偶數(shù),沒(méi)有偶數(shù)則輸出字符 NO 編程思路:從存儲(chǔ)空間 num 中取出這兩個(gè)數(shù),暫存到寄存器 AX,運(yùn)用 TEST 測(cè)試指令 AX 中數(shù)值最后一位是 0 還是 1,影響標(biāo)志位。若 位十六進(jìn)制數(shù)最大無(wú)符號(hào)數(shù)為 65535,所以通過(guò)除法求出輸出十進(jìn)制數(shù)的萬(wàn)位,千位,百位,十位 30H 轉(zhuǎn)換成對(duì)應(yīng)的 ASCII DOS 單字符輸出 2 號(hào)功能調(diào)用顯示該數(shù)值。若 CF=1,則說(shuō)明該數(shù)為奇數(shù),BX 加 1,跳轉(zhuǎn)到取第二個(gè)數(shù),進(jìn)行相同操作。若第二個(gè)數(shù)也為奇數(shù),則 BX 再加 1。最后判斷 BX 是否等于 2,跳轉(zhuǎn)到顯示提

18、示字符 NO,然后返回子程序調(diào)用處;若不為 2,則返回子程序調(diào)用處。微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)子程序流程圖如圖7所示。NYNYY圖7 判斷奇偶十進(jìn)制輸出偶數(shù)子程序流程圖微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)子程序部分程序如下:顯示第一個(gè)數(shù).MOVAX,numTEST,0001HJNZJISHU1MOV,0;顯示10進(jìn)制數(shù)萬(wàn)位;擴(kuò)展成32位MOVCX ,10000DDIVCX;32位除以16位PUSH DX;商放在DX;除數(shù)轉(zhuǎn)移到,ASCLL碼要放在中MOV,AXADD,30HMOVAH,2INT21HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)萬(wàn)位;擴(kuò)展成32位MOVAX,DXMOV,0MO

19、VCX ,1000DDIVCX;32位除以16位PUSH DX;商放在DX;除數(shù)轉(zhuǎn)移到,ASCLL碼要放在中MOV,AXADD,30HMOVAH,2INT21HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)千位;16位除以8位MOVAX,DXMOVCL,100DPUSHAXMOV,ALADD,30HMOVAH,2INT21H;ASCLL碼要放在中;單字符輸出微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)4.6 功能四子程序設(shè)計(jì)乘以 16 位數(shù),結(jié)果為 32 位,MUL 無(wú)符號(hào)數(shù)相乘目的操作數(shù)隱含,把乘數(shù)放到 AX 中與隱含操作數(shù) AX 16 默認(rèn)放在 DX 6 位默認(rèn)放在 AX。中。然后再求和。每次顯示一位

20、4 進(jìn)制數(shù),需要顯示八次讀取每位十六進(jìn)制數(shù),與9和 F 比較,若數(shù)值小于 9,則將其加 30H,若其在 A 到 F 之間則將其加 37H,轉(zhuǎn)換成相應(yīng)字符的 ASCII 碼值。然后調(diào)用 DOS 單字符輸出 2 號(hào)功能調(diào)用顯示該數(shù)值。取某位十六進(jìn)制數(shù)時(shí),可以采用邏輯移位的方式,移位次數(shù)為四。子程序流程圖如圖 10 所示。取一個(gè)數(shù)求平方結(jié)果放在在取一個(gè)數(shù)求平方每次取一位十六進(jìn)制數(shù)顯示共八次圖 10求平方和子程序流程圖子程序部分程序如下:微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū).MOVAX,numMUL num;第一個(gè)數(shù)平方MOVX,AXMOVDDMOVAX,num+2MUL 2ADDAX,XADC ,YMO

21、VS,AXMOVZ,DXMOVAX,DXMOV,AHMOV,AHMOV,4;第二個(gè)數(shù)平方;方便后面AX,DX分開(kāi)操作;平方和;復(fù)制AX,DX;結(jié)果為ZS;先顯示內(nèi)容;復(fù)制,放到中;顯示部分,取結(jié)果高八位SHR ,CLCMP,9;右移4位JBE NEXTD7ADD,7HNEXTD7:ADD,30HMOVAH,2INT21HMOV,BLAND,0FHCMP,9;轉(zhuǎn)成ascll碼JBE NEXTD8ADD,7H.;顯示提示語(yǔ)句JE EXITEXIT: MOVAX,4C00HINT21H完整程序結(jié)果如圖12所示。圖12 運(yùn)行結(jié)果跳轉(zhuǎn)指令所允許的范圍。只要把標(biāo)號(hào)的位置放在,跳轉(zhuǎn)允許范圍內(nèi)即可。(2)在調(diào)

22、試十六進(jìn)制轉(zhuǎn)換成二進(jìn)制數(shù)時(shí)出現(xiàn)如圖13所示不正確結(jié)果:圖13 十六進(jìn)制轉(zhuǎn)換成二進(jìn)制數(shù)不正確結(jié)果經(jīng)過(guò)分析發(fā)現(xiàn)是由于調(diào)用BIOS9號(hào)功能調(diào)用時(shí)沒(méi)有設(shè)置也是BH的參數(shù),在沒(méi)有設(shè)置的情況BH的值不確定,所以不能正確顯示結(jié)果。設(shè)置固定參數(shù)BH=0即可。(3)在程序調(diào)試過(guò)程中,有時(shí)候程序執(zhí)行時(shí)過(guò)快,沒(méi)有觀察到結(jié)果。段的最后即可。微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)心得體會(huì)微機(jī)原理課程設(shè)計(jì)是對(duì)匯編程序語(yǔ)言的綜合運(yùn)用,既用到了課堂知識(shí)又拓展了課外地完成了設(shè)計(jì)任務(wù)。 和 BIOS 功能調(diào)用。通過(guò)對(duì)過(guò)程中,整個(gè)程序是由多個(gè)子程序組成的,而且子程序中涉及很多跳轉(zhuǎn)指令和循環(huán)指令。DOS 和 BIOS 功能調(diào)用,它們是實(shí)現(xiàn)

23、各種程序功能必不可少的一部分,因此我認(rèn)為有必要掌握好 DOS 和 BIOS 的各種功能調(diào)用,為自己進(jìn)一步學(xué)習(xí)編程打下堅(jiān)實(shí)的基礎(chǔ)。通過(guò)實(shí)際編程發(fā)現(xiàn),在編寫(xiě)程序時(shí),先畫(huà)好程序流程圖將會(huì)使編程思路更清晰,提高編程的效率。在編寫(xiě)程序文本時(shí),在每一行附上必要的注釋,尤其是在編寫(xiě)大程序時(shí),將有助于自己進(jìn)步回查,分析結(jié)構(gòu)功能組合,檢查錯(cuò)誤,并修改,同時(shí)也方便他人閱讀。這些過(guò)程都有助于我們良好的變成習(xí)慣,提高我們的專業(yè)能力。每一次課程設(shè)計(jì)報(bào)告書(shū)的撰寫(xiě)就是又一次提高個(gè)人專業(yè)素養(yǎng)的過(guò)程。總之本次課程設(shè)計(jì)鞏固了理論知識(shí),拓展了課外知識(shí)和提高個(gè)人專業(yè)素養(yǎng)。微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)參考文獻(xiàn)1 社.20052 社

24、.19943 周佩玲、彭虎、傅忠謙編著.微機(jī)原理與接口技術(shù).北京:電子工業(yè)出版社.20054 齊志儒、高福祥編著.匯編語(yǔ)言程序設(shè)計(jì).沈陽(yáng):東北大學(xué)出版社.20015 馮萍、史新福編著.匯編語(yǔ)言與接口技術(shù).北京:機(jī)械工業(yè)出版社.2002微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)附錄一:程序源代碼datasegmentXYZSDW ?DW ?DW ?DW ?DISNODB 0AH,0DH,NO$BUFF3 DB 0AH,0DH,SHUCHU ER JIN ZHI SHU$BUFF4 DB 0AH,0DH,OU SHU SHI JIN ZHI SHU CHU$BUFF5 DB 0AH,0DH,SHUCHU C

25、HU PING FANG HE$BUFF2DB 0AH,0DH,IF YOU WANT TO QUIT,PLEASE PRESS Q/q$stridb input a number 0ah,0dh,$;提示文字maxactlenstringnumdb5db ?db 5 dup(?)dw 2dup(?);保留輸入數(shù)值的存儲(chǔ)空間dataendsstack1segmentdw 256hdup0);保留堆棧空間stack1endscodesegmentassumeds:data,ss:stack1,cs:code:mov ax,datamov ds,axcallinput微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明

26、書(shū)mov ax,nummov num+2,axmov dl,0ahmov ,2;換行;單字符輸出調(diào)用int 21hcallinput;調(diào)用子程序input;-十六進(jìn)制轉(zhuǎn)換成二進(jìn)制LEA,BUFF3MOVAH,9;顯示提示語(yǔ)句INT21HMOV,0AHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV,0DHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV BX,numMOV CX,8XOR ,DXMOV,5;轉(zhuǎn)換顯示第一個(gè)數(shù)CALLHEE12RMOV BX ,num+2MOV CX,8XOR ,DXMOV,6;轉(zhuǎn)換顯示第二個(gè)數(shù)CALLHEE12R;-十六進(jìn)制數(shù)中偶數(shù)輸出LEA,BUF

27、F4 ;顯示提示語(yǔ)句微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)MOVAH,9INT21HMOV,0AHMOVAH,2INT21H;換行;單字符輸出調(diào)用MOV,0DHMOVAH,2INT21H;換行;單字符輸出調(diào)用MOVAX,numTEST,0001HJNZJISHU1MOV,0MOVCX ,10000DDIVCX;顯示10進(jìn);擴(kuò)展成32位;32位除以16位PUSH DX;商放在,余數(shù)放在,余數(shù)要用先保存起來(lái);除數(shù)轉(zhuǎn)移到,碼要放在中MOV,AXADD,30HMOVAH,2INT21HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)萬(wàn)位;擴(kuò)展成32位MOVAX,DXMOV,0MOVCX ,1000DDIVCX

28、;32位除以16位PUSH DX;商放在AX,余數(shù)放在,余數(shù)要用先保存起來(lái);除數(shù)轉(zhuǎn)移到,碼要放在中MOV,AXADD,30HMOVAH,2微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)INT21HPOPDX;彈出余數(shù)進(jìn)行下一步MOVAX,DXMOVCL,100DDIVCL;顯示10進(jìn)制數(shù)千位;16位除以8位PUSHAX;商放在16位(棧)先保存起來(lái);ASCLL碼要放在中MOV,ALADD,30HMOVAH,2INT21HPOPAX;彈出余數(shù)進(jìn)行下一步;為使類型匹配MOVBH,0MOV,AHMOVAX,BXMOVCL,10DDIVCL;顯示10進(jìn)制數(shù)十位;16位除以8位PUSHAX;商放在16位(棧)先保存起

29、來(lái);ASCLL碼要放在中MOV,ALADD,30HMOVAH,2INT21HPOPAX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)個(gè)位MOV,AHADD,30HMOVAH,2INT21HMOVCX,0FFFFHJISHU1:微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū);-第一個(gè)數(shù)顯示完MOVDL,0AHINT21H;-顯示第二個(gè)數(shù)MOVAX,num+2TEST,0001HJNZ JISHU2MOV,0MOVCX ,10000DDIVCX;顯示10進(jìn)制數(shù)萬(wàn)位;擴(kuò)展成32位;32位除以16位PUSH DX;商放在AX,余數(shù)放在,余數(shù)要用先保存起來(lái);除數(shù)轉(zhuǎn)移到,碼要放在中MOV,AXADD,30HMOVAH,2INT2

30、1HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)萬(wàn)位;擴(kuò)展成32位MOVAX,DXMOV,0MOVCX ,1000DDIVCX;32位除以16位PUSH DX;商放在,余數(shù)放在,余數(shù)要用先保存起來(lái);除數(shù)轉(zhuǎn)移到,碼要放在中MOV,AXADD,30HMOVAH,2INT21HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)千位MOVAX,DX微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)MOVCL,100DDIVCL;16位除以8位PUSHAX;商放在,余數(shù)放在,余數(shù)要用以16位(棧)先保存起來(lái);ASCLL碼要放在中MOV,ALADD,30HMOVAH,2INT21HPOPAX;彈出余數(shù)進(jìn)行下一步;為使類型匹配

31、MOVBH,0MOV,AHMOVAX,BXMOVCL,10DDIVCL;顯示10進(jìn)制數(shù)十位;16位除以8位PUSHAX;商放在16位(棧)先保存起來(lái);ASCLL碼要放在中MOV,ALADD,30HMOVAH,2INT21HPOPAX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)個(gè)位MOV,AHADD,30HMOVAH,2INT21HMOVCX,0FFFFHPOPBX;-顯示完第二個(gè)數(shù)JISHU2:PUSH BX微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)PUSH DXPUSHAXPUSH CXPUSHFXOR,AXMOVBX,numMOV,num+2SHR ,1,0SHR ,1ADC,0CMP,2JNE EXITL

32、EA,DISNOMOVAH,9INT21H;顯示提示語(yǔ)句POPFPOPCXPOPAXPOP DXPOP BX;-十六進(jìn)制偶數(shù)輸出顯示完;-程序結(jié)束部分LEA,BUFF5MOVAH,9;顯示提示語(yǔ)句INT21HMOV,0AHMOVAH,2;換行;單字符輸出調(diào)用微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)INT21HMOV,0DHMOVAH,2;換行;單字符輸出調(diào)用INT21HCALLPINGFANGLEA,BUFF2MOVAH,9;顯示提示語(yǔ)句INT21HMOVAH,08HINT21HCMP,QJE EXITCMP,qJE EXITEXIT:MOV,4C00HINT21H;-主程序結(jié)束;-子程序部分inpu

33、t procnear;輸入一個(gè)四位十六進(jìn)制數(shù),之間的四個(gè)字符push dx;保護(hù)寄存器內(nèi)容push axpush sipush cxpush bxmov dx,offset strimov ,9hint 21h;顯示字符串;多字符顯示輸出調(diào)用leadx,max微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)mov ,0ahint 21h;調(diào)用DOS中斷輸入一個(gè)四位十六進(jìn)制;取字符串首址leasi,stringmov cx,4xor dx,dx;將清零get:push cxmov al,sicmpal0jb returncmpal,Fjaxiaoxie;取一個(gè)字符;檢查輸入的字符是否在之間;否,返回xiaoxi

34、e:cmpal,fjareturncmpal9jbe deci;轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字cmpal,ajb daxiesub al,20h;值為先減7,再減30;值為先減20,再減37daxie:sub al,07hdeci:sub al,30hcbwor dx,axmov bx,dx微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)andbx,0f000hjnz nosmov cl,4shl dx,clnos:incsipop cxloop getreturn:mov num ,dxpop bxpop cxpop si;保存結(jié)果pop axpop dxretinput endp;-輸入子程序結(jié)束HEE12RPROC ;-16進(jìn)制轉(zhuǎn)化成二進(jìn)制子程序開(kāi)始PUSHAXPUSH BXPUSH CXPUSH DXPUSHFLOOP1:XOR ,AXSHL ,1ADC ,0PUSH BX微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書(shū)PUSH CXMOVCX,1MOV,04HMOV,0ADD ,30HMOV ,AHMOVAH,9INT 10HPOPCX;顯示一個(gè)字符;背景色為黑色,顯示顏色為紅色;要顯示的0或1在AH中MOVAH,2MOVBH,0INCDL;設(shè)置光標(biāo)移動(dòng)INT10HPOPBXXOR,AXSHL ,1ADC,0PUSH BXPUSH CX

溫馨提示

  • 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. 人人文庫(kù)網(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)論