匯編十六進(jìn)制數(shù)與十進(jìn)制數(shù)_第1頁(yè)
匯編十六進(jìn)制數(shù)與十進(jìn)制數(shù)_第2頁(yè)
匯編十六進(jìn)制數(shù)與十進(jìn)制數(shù)_第3頁(yè)
匯編十六進(jìn)制數(shù)與十進(jìn)制數(shù)_第4頁(yè)
匯編十六進(jìn)制數(shù)與十進(jìn)制數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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)介

北華航天工業(yè)學(xué)院課程設(shè)計(jì)報(bào)告(論文)設(shè)計(jì)課題:代碼轉(zhuǎn)換(十六進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換)專業(yè)班級(jí):電子信息工程學(xué)生姓名:指導(dǎo)教師:設(shè)計(jì)時(shí)間: 2010年12月19日

北華航天工業(yè)學(xué)院電子工程系微機(jī)原理課程設(shè)計(jì)任務(wù)書姓名:專業(yè):電子信息工程班級(jí):指導(dǎo)教師:職稱:課程設(shè)計(jì)題目:代碼轉(zhuǎn)換(十六進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換)已知技術(shù)參數(shù)和設(shè)計(jì)要求:編程實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換。學(xué)習(xí)數(shù)值和數(shù)值的相互轉(zhuǎn)換方法。按屏幕提示要求輸入,從屏幕上獲得正確結(jié)果。實(shí)現(xiàn)循環(huán)運(yùn)行。所需儀器設(shè)備:計(jì)算機(jī)成果驗(yàn)收形式:1.筆試2.屏幕顯示3.設(shè)計(jì)報(bào)告參考文獻(xiàn):微機(jī)原理與接口技術(shù)8086實(shí)驗(yàn)指導(dǎo)書時(shí)間安排第十六周:編輯程序進(jìn)行調(diào)試第十七周:驗(yàn)收指導(dǎo)教師: 教研室主任:TOC\o"1-5"\h\z內(nèi)容摘要 1\o"CurrentDocument"一?課設(shè)概述 2\o"CurrentDocument"設(shè)計(jì)內(nèi)容 2\o"CurrentDocument"實(shí)驗(yàn)要求 2\o"CurrentDocument"實(shí)驗(yàn)?zāi)康?2\o"CurrentDocument"設(shè)計(jì)環(huán)境 2\o"CurrentDocument"Masmforwindow集成實(shí)驗(yàn)環(huán)境介紹 2\o"CurrentDocument"DOS系統(tǒng)功能調(diào)用 2\o"CurrentDocument"匯編語(yǔ)言的上機(jī)過(guò)程 3\o"CurrentDocument"設(shè)計(jì)方案 4\o"CurrentDocument"設(shè)計(jì)思想 4\o"CurrentDocument"設(shè)計(jì)方案 4\o"CurrentDocument"總原理圖 6\o"CurrentDocument"程序清單 6\o"CurrentDocument"方法一 6\o"CurrentDocument"方法二 9\o"CurrentDocument"運(yùn)行結(jié)果 12\o"CurrentDocument"實(shí)驗(yàn)體會(huì) 12\o"CurrentDocument"參考文獻(xiàn) 13內(nèi)容摘要匯編語(yǔ)言是一種面向計(jì)算機(jī)的程序設(shè)計(jì)語(yǔ)言,和機(jī)器語(yǔ)言相比,匯編語(yǔ)言編寫程序可以用助記符來(lái)表示指令的操作碼和操作數(shù),也可以用標(biāo)號(hào)來(lái)替代地址,常量和變量,還引入了新的匯編指令——偽指令和宏指令。高級(jí)程序設(shè)計(jì)語(yǔ)言使用了更接近人們的自然語(yǔ)言和習(xí)慣的教學(xué)語(yǔ)言來(lái)描述具體的算法,使編寫的程序更加直觀和簡(jiǎn)練。高級(jí)語(yǔ)言通常都包含有各種函數(shù)計(jì)算,字符串處理,數(shù)據(jù)I/O等功能。高級(jí)語(yǔ)言通常是獨(dú)立于具體機(jī)器的,程序員可不必了解機(jī)器的指令系統(tǒng)和內(nèi)部的具體結(jié)構(gòu),可以把精力集中在正確掌握語(yǔ)言的語(yǔ)法桂策和程序運(yùn)算上。編寫的程序容易被閱讀和修改。此次課設(shè)內(nèi)容以微軟公司的宏匯編MASM為背景,主要學(xué)習(xí)匯編的語(yǔ)法規(guī)則,同時(shí)應(yīng)用一些磁盤操作系統(tǒng)的功能調(diào)用和基本輸入輸出系統(tǒng)的中斷調(diào)用。DOS是用戶和微型計(jì)算機(jī)之間的接口,用戶依靠DOS來(lái)管理微型計(jì)算機(jī)。DOS向用戶提供了許多命令及系統(tǒng)功能,用戶可以在DOS提示符下鍵入命令來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)的操作。課設(shè)中多次用到DOS指令。索引關(guān)鍵詞:匯編語(yǔ)言偽指令宏指令DOS中斷課設(shè)概述設(shè)計(jì)內(nèi)容:編程實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換。實(shí)驗(yàn)要求:編程實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)之間的轉(zhuǎn)換。實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)數(shù)值和數(shù)值的相互轉(zhuǎn)換方法,并熟練掌握匯編語(yǔ)言語(yǔ)法的使用,DOS系統(tǒng)功能調(diào)用,并學(xué)習(xí)循環(huán)結(jié)構(gòu)的設(shè)計(jì)。設(shè)計(jì)環(huán)境Masmforwindow集成實(shí)驗(yàn)環(huán)境介紹MasmforWindows集成實(shí)驗(yàn)環(huán)境是從事一線教學(xué)的大學(xué)教師針對(duì)匯編語(yǔ)言初學(xué)者的特點(diǎn)開發(fā)的一個(gè)簡(jiǎn)單易用的匯編語(yǔ)言的學(xué)習(xí)軟件,它具有錯(cuò)誤信息自動(dòng)定位、關(guān)鍵字實(shí)時(shí)幫助(動(dòng)畫演示匯編指令執(zhí)行過(guò)程)、語(yǔ)法著色、無(wú)限的撤消與恢復(fù)、WORD式的查找、替換、定位、支持中文長(zhǎng)文件名、軟件可以安裝在任意文件夾等功能。DOS系統(tǒng)功能調(diào)用使用DOS提供的程序控制硬件。優(yōu)點(diǎn)是兼容性好,使用方便。DOS是IBMPC系列微機(jī)的操作系統(tǒng)(現(xiàn)在的微機(jī)仍能運(yùn)行DOS,而且新的操作系統(tǒng)也能繼續(xù)提供幾乎所有的DOS功能調(diào)用)負(fù)責(zé)管理系統(tǒng)的所有資源,協(xié)調(diào)微機(jī)的操作,其中包括大量可供用戶調(diào)用的服務(wù)程序。DOS的功能調(diào)用不依賴于具體的硬件系統(tǒng)。所有的DOS系統(tǒng)功能調(diào)用都是利用軟件中斷指令I(lǐng)NT21H來(lái)實(shí)現(xiàn)的。也就是說(shuō),在程序中需要調(diào)用DOS功能的時(shí)候,只要使用一條INT21H指令即可。INT21H是一個(gè)具有90多個(gè)子功能的中斷服務(wù)程序,這些子功能大致可以分為四類:設(shè)備管理、目錄管理、文件管理和其他。其功能一覽表可參見(jiàn)附錄。為了方便用戶使用這些子功能,INT21H對(duì)每一個(gè)子功能都進(jìn)行了編號(hào)——稱為功能號(hào)。這樣,用戶就能通過(guò)指定功能號(hào)來(lái)調(diào)用INT21H的不同子功能。DOS系統(tǒng)功能調(diào)用的方法如下:AH->功能號(hào)。在其他寄存器中放入該功能所要求的人口參數(shù)。在執(zhí)行INT21H指令。分析出口參數(shù)。匯編語(yǔ)言的上機(jī)過(guò)程源文件的建立和匯編:1(1)建立源程序文件規(guī)定源程序文件的擴(kuò)展名為.ASM(2)匯編源程序文件檢查源程序中的語(yǔ)法錯(cuò)誤并給出出錯(cuò)信息I產(chǎn)生目標(biāo)文件(OBJ文件),列表文件(LST文件)和對(duì)應(yīng)文件(CRF文件)I展開宏指令目標(biāo)文件的鏈接:找到要連接的所有目標(biāo)文件確定所有段地址的地址值(3)確定所有浮動(dòng)地址和外部符號(hào)所對(duì)應(yīng)的存儲(chǔ)地址ir(4)生成.EXE可執(zhí)行文件執(zhí)行文件的調(diào)用設(shè)計(jì)方案1.設(shè)計(jì)思想在計(jì)算機(jī)系統(tǒng)中有多種數(shù)制和編碼,常用的數(shù)制有二進(jìn)制、八進(jìn)制以及十六進(jìn)制,常用的代碼有BCD碼、ASCII碼和七段顯示碼等。這些數(shù)制和編碼根據(jù)其作用的不同,在存儲(chǔ)形式上也有差異。在實(shí)際應(yīng)用中,它們也因使用的要求不同而有所差異。在配備操作系統(tǒng)管理程序的計(jì)算機(jī)中,有些代碼轉(zhuǎn)換程序已在系統(tǒng)管理軟件中編好。還有些代碼轉(zhuǎn)換需要根據(jù)使用要求通過(guò)編程完成。因此,代碼轉(zhuǎn)換是非數(shù)據(jù)處理中最常見(jiàn)的情況。十六進(jìn)制向十進(jìn)制的轉(zhuǎn)換分成兩個(gè)大的步驟。一是從十六進(jìn)制向二進(jìn)制的轉(zhuǎn)換,由于十六進(jìn)制和二進(jìn)制的特殊關(guān)系,它們之間的轉(zhuǎn)換非常簡(jiǎn)單。二是從二進(jìn)制轉(zhuǎn)換為十進(jìn)制,相對(duì)而言,這種轉(zhuǎn)換復(fù)雜一些。所以該模塊的核心是實(shí)現(xiàn)二進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。方法是將要轉(zhuǎn)換的二進(jìn)制數(shù)預(yù)先放到AX寄存器中,判斷AX中數(shù)的符號(hào),若為負(fù)數(shù),則將負(fù)號(hào)送入輸出緩沖區(qū),并求AX的絕對(duì)值;若AX中的數(shù)為正數(shù),則不做其他處理,此時(shí)AX中即為無(wú)符號(hào)二進(jìn)制數(shù)。然后將無(wú)符號(hào)二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),可采用將AX除以10,得到第一個(gè)商和第一個(gè)余數(shù),第一個(gè)余數(shù)就是所求十進(jìn)制數(shù)的個(gè)位:將第一個(gè)商除以10,得到第二個(gè)商和余數(shù),第二個(gè)余數(shù)就是所求十進(jìn)制數(shù)的十位數(shù),重復(fù)以上過(guò)程,一直循環(huán)到商為0時(shí),得到的余數(shù)就是所求十進(jìn)制數(shù)的最高位數(shù)。這就是數(shù)制轉(zhuǎn)換中常用的“除模留余倒排列”法則。2.設(shè)計(jì)方案(1)實(shí)現(xiàn)十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換第一步:實(shí)現(xiàn)十六進(jìn)制數(shù)的輸入和對(duì)應(yīng)二進(jìn)制數(shù)的轉(zhuǎn)換。利用DOS系統(tǒng)功能中的1號(hào)輸入字符的功能,接收輸入的十六進(jìn)制數(shù),將其轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制數(shù)(若是0-9之間的數(shù)直接屏蔽高4位,若是A-F之間的書在屏蔽高4位后還要加9)。BX中存放的是二進(jìn)制數(shù)的結(jié)果,利用算數(shù)左移指令講BX左移4位,然后與下一次轉(zhuǎn)換后的數(shù)相加。如此循環(huán)4次,得到對(duì)應(yīng)的二進(jìn)制數(shù)。第二步:實(shí)現(xiàn)顯示轉(zhuǎn)化后的二進(jìn)制數(shù)。利用ROL和RCL指令,從最高為起循環(huán)取出每位二進(jìn)制數(shù),將其轉(zhuǎn)換成對(duì)應(yīng)的ASSCII碼,調(diào)用DOS系統(tǒng)功能調(diào)用中2號(hào)功能顯示。(2) 實(shí)現(xiàn)二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換。用循環(huán)左移指令ROL每次移動(dòng)4位,取出移到最低的4位,利用十六進(jìn)制數(shù)所對(duì)應(yīng)的ASSCII碼比其本身大30H(0-9)或37H(A-Z)的關(guān)系,將低4位轉(zhuǎn)換成所對(duì)應(yīng)的ASSCII碼,在調(diào)用DOS系統(tǒng)功能2號(hào)(顯示字符)功能,將轉(zhuǎn)換后的字符顯示出來(lái),如此循環(huán)四次。(3) 本程序的難點(diǎn)是如何把二進(jìn)制轉(zhuǎn)化為十進(jìn)制,并將其輸出。我們采用了除以10,把取余數(shù)保存的方法,現(xiàn)在以十進(jìn)制數(shù)132為例,采用除以10并取余的方法,主要是因?yàn)椴恢烙卸M(jìn)制轉(zhuǎn)化的真值所構(gòu)成的十進(jìn)制數(shù)有幾位。132/10=13……..2 保存2,又因?yàn)?3!=0,所以繼續(xù)運(yùn)算13/10=1 ..3 保存3,又因?yàn)?!=0,所以繼續(xù)運(yùn)算1/10=0 1 保存1,0==0,所以結(jié)束此運(yùn)算如下圖所示:經(jīng)過(guò)相關(guān)處理,把保存的數(shù)據(jù)變成0-9的ASSCII碼。所以保存的數(shù)據(jù)為:2” “3” “1在經(jīng)過(guò)轉(zhuǎn)置,把倒序的結(jié)果順序化,得到結(jié)果:1” “3” “2這樣就解決了二進(jìn)制轉(zhuǎn)化為十進(jìn)制數(shù)的算法。總原理圖開始顯示菜單信息程序清單1.方法一CODESEGMENTMAINPROCFAR

ASSUMECS:CODESTART:CALLHEXIBIN;16-2CALLCRLF;換行CALLBINIDEC;2-10CALLCRLFJMPMAIN;getnextinputRETMAINENDPHEXIBINPROCNEARMOVBX,0;clearBXfornumberNEWCHAR:MOVAH,01H;keyboardinputINT21H;callDOSSUBAL,30H;ASCIItobinaryJLEXIT;jumpif<0CMPAL,10D;isit>9dJLADD_TO;yes,soit,sdigit;notdigit(0-9),maybeletter(atof)SUBAL,27H;convertASCIItobinaryCMPAL,0AH;isit<0ahex?JLEXIT;yes,notletterCMPAL,10H;isit>0fhex?JGEEXIT;yes,notletterishexdigit,addtonumberinBXADD_TO:MOVCL,4SHLBX,CLMOVAH,0

ADD BX,AXJMP NEWCHAREXIT:RETHEXIBINENDPBINIDECPROCNEARMOVCX,10000DCALLDEC_DIVMOVCX,1000DCALLDEC_DIVMOVCX,100DCALLDEC_DIVMOVCX,10DCALLDEC_DIVMOVCX,1DCALLDEC_DIVRETDEC_DIVPROCNEARMOVAX,BX;numberlowhalfMOVDX,0;zeroouthighhalfDIVCXMOVBX,DX;remainderintoBXMOVDL,AL;quotientintoDL;printthe,contentsofDLonscreenADDDL,30H;converttoASCIIMOVAH,02HINT21HRETDEC_DIV ENDPBINIDEC ENDPCRLF PROC NEARMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HRETCRLF ENDPCODE ENDSEND START2.方法二datasegmentmdw10dup(?)recdb5dup(?);記錄因子MESSAGE5DB,Welcometothesystem!',13,10,13,10DB'ThefunctionoftheprogramischangingH(16)numbersintoD(10)numbers.',13,10DB,Pleaseenterthenumber....',13,10,13,10,'$'dataendscodesegmentmainprocfarassumecs:code,ds:datastart:pushdsmovax,datamovds,axmovbx,0LEADX,MESSAGE5MOVAH,09HINT21H ;輸出提示語(yǔ)newchar:movah,1;鍵盤輸入int21hsubal,30hjlini;<0輸出cmpal,10jladd_tosubal,27h; ‘a(chǎn)’~‘f’cmpal,0ahjlini;<‘a(chǎn)’輸出cmpal,10hjgeini;>’f’輸出add_to:movcl,4shlbx,clmovah,0addbx,axmovm,bxjmpnewcharini:movax,mmovbx,10movsi,4change:movdx,0divbxmov[rec+si],dldecsicmpax,0jachangeoutput:incsimovdl,[rec+si]adddl,30hmovah,02hint21hcmpsi,4jboutputmovdl,20hmovah,02hint21hexit:movah,4chint21hmainendpcodeendsendstart

運(yùn)行結(jié)果通過(guò)設(shè)計(jì)和編寫程序代碼,運(yùn)行程序后,其結(jié)果先為顯示開始界面幾位菜單界面,而后隨意輸入一個(gè)十六進(jìn)制數(shù),打完字敲回車,馬上出現(xiàn)所對(duì)應(yīng)的十進(jìn)制數(shù)。同時(shí),再打回車,可以再輸入十六進(jìn)制數(shù),并且可以循環(huán)運(yùn)行。輕松匯編-F:\學(xué)習(xí)\微機(jī)課設(shè)'新建文件夾環(huán).asm o向)咨|文件舊端輯(E)宣坦F)苗(R)設(shè)置(S)?OlWl幫助(H)口口口口口-.....s-'..s-'..s-'...s-'加[Inactive口口口口口-.....s-'..s-'..s-'...s-'加[Inactiveword3.Ex司W(wǎng)elcometothesysten?ThefunctionoftheprogramischangingH<16>numbersintoD<10>nunbers.Pleaseenterthenumber....13092lhersintoD(10)numbers.*,13r10交叉文件 映象文件 匯編程序華送行成功!實(shí)驗(yàn)體會(huì)通過(guò)這次的課程設(shè)計(jì),讓我們對(duì)匯編語(yǔ)言有了更

溫馨提示

  • 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)論