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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、符或字符串都定義在數(shù)據(jù)段,在數(shù)據(jù)段內(nèi)預(yù)留存儲空間以備子程序調(diào)用過程中占用定義堆棧段,盡量把堆棧預(yù)留空間設(shè)置大一點,因為子程序調(diào)用過程中,要進(jìn)行大量的反復(fù)保存各寄存器內(nèi)的內(nèi)容。然后定義代碼段,給各個段寄存器分配段。給每個段寄存器指定段地址。然后調(diào)用各子程序?qū)崿F(xiàn)各項功能,在子程調(diào)用前設(shè)置好相關(guān)參數(shù)。最后設(shè)置一個程序執(zhí)行完后的退出人際交互命令。主程序流程圖如圖 2 所示。16進(jìn)制圖 2主程序流程圖6微機原理與接口技術(shù)課程設(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ù)值的存儲空間datastack1segmentdw 256h 0);保留堆??臻gstack1endscodesegmentassumeds:data,

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

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

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

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

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

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

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

18、示字符 NO,然后返回子程序調(diào)用處;若不為 2,則返回子程序調(diào)用處。微機原理與接口技術(shù)課程設(shè)計說明書子程序流程圖如圖7所示。NYNYY圖7 判斷奇偶十進(jìn)制輸出偶數(shù)子程序流程圖微機原理與接口技術(shù)課程設(shè)計說明書子程序部分程序如下:顯示第一個數(shù).MOVAX,numTEST,0001HJNZJISHU1MOV,0;顯示10進(jìn)制數(shù)萬位;擴展成32位MOVCX ,10000DDIVCX;32位除以16位PUSH DX;商放在DX;除數(shù)轉(zhuǎn)移到,ASCLL碼要放在中MOV,AXADD,30HMOVAH,2INT21HPOPDX;彈出余數(shù)進(jìn)行下一步;顯示10進(jìn)制數(shù)萬位;擴展成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碼要放在中;單字符輸出微機原理與接口技術(shù)課程設(shè)計說明書4.6 功能四子程序設(shè)計乘以 16 位數(shù),結(jié)果為 32 位,MUL 無符號數(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 號功能調(diào)用顯示該數(shù)值。取某位十六進(jìn)制數(shù)時,可以采用邏輯移位的方式,移位次數(shù)為四。子程序流程圖如圖 10 所示。取一個數(shù)求平方結(jié)果放在在取一個數(shù)求平方每次取一位十六進(jìn)制數(shù)顯示共八次圖 10求平方和子程序流程圖子程序部分程序如下:微機原理與接口技術(shù)課程設(shè)計說明書.MOVAX,numMUL num;第一個數(shù)平方MOVX,AXMOVDDMOVAX,num+2MUL 2ADDAX,XADC ,YMO

21、VS,AXMOVZ,DXMOVAX,DXMOV,AHMOV,AHMOV,4;第二個數(shù)平方;方便后面AX,DX分開操作;平方和;復(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.;顯示提示語句JE EXITEXIT: MOVAX,4C00HINT21H完整程序結(jié)果如圖12所示。圖12 運行結(jié)果跳轉(zhuǎn)指令所允許的范圍。只要把標(biāo)號的位置放在,跳轉(zhuǎn)允許范圍內(nèi)即可。(2)在調(diào)

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

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

24、.19943 周佩玲、彭虎、傅忠謙編著.微機原理與接口技術(shù).北京:電子工業(yè)出版社.20054 齊志儒、高福祥編著.匯編語言程序設(shè)計.沈陽:東北大學(xué)出版社.20015 馮萍、史新福編著.匯編語言與接口技術(shù).北京:機械工業(yè)出版社.2002微機原理與接口技術(shù)課程設(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ù)值的存儲空間dataendsstack1segmentdw 256hdup0);保留堆??臻gstack1endscodesegmentassumeds:data,ss:stack1,cs:code:mov ax,datamov ds,axcallinput微機原理與接口技術(shù)課程設(shè)計說明

26、書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;顯示提示語句INT21HMOV,0AHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV,0DHMOVAH,2;換行;單字符輸出調(diào)用INT21HMOV BX,numMOV CX,8XOR ,DXMOV,5;轉(zhuǎn)換顯示第一個數(shù)CALLHEE12RMOV BX ,num+2MOV CX,8XOR ,DXMOV,6;轉(zhuǎn)換顯示第二個數(shù)CALLHEE12R;-十六進(jìn)制數(shù)中偶數(shù)輸出LEA,BUF

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

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

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

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

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

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

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

34、e:cmpal,fjareturncmpal9jbe deci;轉(zhuǎn)換為對應(yīng)的數(shù)字cmpal,ajb daxiesub al,20h;值為先減7,再減30;值為先減20,再減37daxie:sub al,07hdeci:sub al,30hcbwor dx,axmov bx,dx微機原理與接口技術(shù)課程設(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)制子程序開始PUSHAXPUSH BXPUSH CXPUSH DXPUSHFLOOP1:XOR ,AXSHL ,1ADC ,0PUSH BX微機原理與接口技術(shù)課程設(shè)計說明書PUSH CXMOVCX,1MOV,04HMOV,0ADD ,30HMOV ,AHMOVAH,9INT 10HPOPCX;顯示一個字符;背景色為黑色,顯示顏色為紅色;要顯示的0或1在AH中MOVAH,2MOVBH,0INCDL;設(shè)置光標(biāo)移動INT10HPOPBXXOR,AXSHL ,1ADC,0PUSH BXPUSH CX

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論