




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上北 華 航 天 工 業(yè) 學 院課程設計報告(論文)設計課題: 代碼轉(zhuǎn)換 (十六進制數(shù)向十進制數(shù)之間的轉(zhuǎn)換) 專業(yè)班級: 電子信息工程 學生姓名: 指導教師: 設計時間: 2010年12月19日 專心-專注-專業(yè)北華航天工業(yè)學院電子工程系 微機原理 課程設計任務書姓 名:專 業(yè):電子信息工程班 級:指導教師:職 稱:課程設計題目:代碼轉(zhuǎn)換(十六進制數(shù)向十進制數(shù)之間的轉(zhuǎn)換)已知技術(shù)參數(shù)和設計要求:1 編程實現(xiàn)十六進制數(shù)向十進制數(shù)之間的轉(zhuǎn)換。2 學習數(shù)值和數(shù)值的相互轉(zhuǎn)換方法。3 按屏幕提示要求輸入,從屏幕上獲得正確結(jié)果。4 實現(xiàn)循環(huán)運行。所需儀器設備:計算機成果驗收形式:1
2、. 筆試 2. 屏幕顯示 3. 設計報告參考文獻:微機原理與接口技術(shù)8086實驗指導書時間安排第十六周:編輯程序 進行調(diào)試第十七周:驗收指導教師: 教研室主任: 年 月 日目 錄內(nèi) 容 摘 要 1一課設概述 21.設計內(nèi)容 22.實驗要求 23.實驗目的 2二設計環(huán)境 21.Masm for window集成實驗環(huán)境介紹 22.DOS系統(tǒng)功能調(diào)用 23.匯編語言的上機過程 3三設計方案 41.設計思想 42.設計方案 4四總原理圖 6五程序清單 61.方法一 62.方法二 9六運行結(jié)果 12七實驗體會 12八參考文獻 13內(nèi) 容 摘 要匯編語言是一種面向計算機的程序設計語言,和機器語言相比,匯
3、編語言編寫程序可以用助記符來表示指令的操作碼和操作數(shù),也可以用標號來替代地址,常量和變量,還引入了新的匯編指令偽指令和宏指令。高級程序設計語言使用了更接近人們的自然語言和習慣的教學語言來描述具體的算法,使編寫的程序更加直觀和簡練。高級語言通常都包含有各種函數(shù)計算,字符串處理,數(shù)據(jù)I/O等功能。高級語言通常是獨立于具體機器的,程序員可不必了解機器的指令系統(tǒng)和內(nèi)部的具體結(jié)構(gòu),可以把精力集中在正確掌握語言的語法桂策和程序運算上。編寫的程序容易被閱讀和修改。此次課設內(nèi)容以微軟公司的宏匯編MASM為背景,主要學習匯編的語法規(guī)則,同時應用一些磁盤操作系統(tǒng)的功能調(diào)用和基本輸入輸出系統(tǒng)的中斷調(diào)用。DOS是用戶
4、和微型計算機之間的接口,用戶依靠DOS來管理微型計算機。DOS向用戶提供了許多命令及系統(tǒng)功能,用戶可以在DOS提示符下鍵入命令來實現(xiàn)對計算機的操作。課設中多次用到DOS指令。索引關(guān)鍵詞:匯編語言 偽指令 宏指令 DOS中斷一課設概述1.設計內(nèi)容:編程實現(xiàn)十六進制數(shù)向十進制數(shù)之間的轉(zhuǎn)換。2.實驗要求:編程實現(xiàn)十六進制數(shù)向十進制數(shù)之間的轉(zhuǎn)換。3.實驗目的:學習數(shù)值和數(shù)值的相互轉(zhuǎn)換方法,并熟練掌握匯編語言語法的使用,DOS系統(tǒng)功能調(diào)用,并學習循環(huán)結(jié)構(gòu)的設計。二設計環(huán)境 1.Masm for window集成實驗環(huán)境介紹Masm for Windows 集成實驗環(huán)境是從事一線教學的大學教師針對匯編語言
5、初學者的特點開發(fā)的一個簡單易用的匯編語言的學習軟件,它具有錯誤信息自動定位、關(guān)鍵字實時幫助(動畫演示匯編指令執(zhí)行過程)、語法著色、無限的撤消與恢復、WORD式的查找、替換、定位、支持中文長文件名、軟件可以安裝在任意文件夾等功能。2.DOS系統(tǒng)功能調(diào)用 使用DOS提供的程序控制硬件。優(yōu)點是兼容性好,使用方便。DOS是IBM PC系列微機的操作系統(tǒng)(現(xiàn)在的微機仍能運行DOS,而且新的操作系統(tǒng)也能繼續(xù)提供幾乎所有的DOS功能調(diào)用)負責管理系統(tǒng)的所有資源,協(xié)調(diào)微機的操作,其中包括大量可供用戶調(diào)用的服務程序。DOS的功能調(diào)用不依賴于具體的硬件系統(tǒng)。所有的DOS系統(tǒng)功能調(diào)用都是利用軟件中斷指令INT 21
6、H來實現(xiàn)的。也就是說,在程序中需要調(diào)用DOS功能的時候,只要使用一條INT 21H指令即可。INT 21H是一個具有90多個子功能的中斷服務程序,這些子功能大致可以分為四類:設備管理、目錄管理、文件管理和其他。其功能一覽表可參見附錄。為了方便用戶使用這些子功能,INT 21H對每一個子功能都進行了編號稱為功能號。這樣,用戶就能通過指定功能號來調(diào)用INT 21H的不同子功能。DOS系統(tǒng)功能調(diào)用的方法如下:(1)->功能號。(2)在其他寄存器中放入該功能所要求的人口參數(shù)。(3)在執(zhí)行INT 21H指令。(4)分析出口參數(shù)。3.匯編語言的上機過程 源文件的建立和匯編:(1)建立源程序文件 規(guī)定
7、源程序文件的擴展名為.ASM(2)匯編源程序文件 檢查源程序中的語法錯誤并給出出錯信息產(chǎn)生目標文件(OBJ文件),列表文件(LST文件)和對應文件(CRF文件)展開宏指令目標文件的鏈接:(1) 找到要連接的所有目標文件(2) 確定所有段地址的地址值(3) 確定所有浮動地址和外部符號所對應的存儲地址(4) 生成.EXE可執(zhí)行文件執(zhí)行文件的調(diào)用三設計方案1.設計思想在計算機系統(tǒng)中有多種數(shù)制和編碼,常用的數(shù)制有二進制、八進制以及十六進制,常用的代碼有BCD碼、ASCll碼和七段顯示碼等。這些數(shù)制和編碼根據(jù)其作用的不同,在存儲形式上也有差異。在實際應用中,它們也因使用的要求不同而有所差異。在配備操作系
8、統(tǒng)管理程序的計算機中,有些代碼轉(zhuǎn)換程序已在系統(tǒng)管理軟件中編好。還有些代碼轉(zhuǎn)換需要根據(jù)使用要求通過編程完成。因此,代碼轉(zhuǎn)換是非數(shù)據(jù)處理中最常見的情況。十六進制向十進制的轉(zhuǎn)換分成兩個大的步驟。一是從十六進制向二進制的轉(zhuǎn)換,由于十六進制和二進制的特殊關(guān)系,它們之間的轉(zhuǎn)換非常簡單。二是從二進制轉(zhuǎn)換為十進制,相對而言,這種轉(zhuǎn)換復雜一些。所以該模塊的核心是實現(xiàn)二進制數(shù)向十進制數(shù)的轉(zhuǎn)換。方法是將要轉(zhuǎn)換的二進制數(shù)預先放到AX寄存器中,判斷AX中數(shù)的符號,若為負數(shù),則將負號送入輸出緩沖區(qū),并求AX的絕對值;若AX中的數(shù)為正數(shù),則不做其他處理,此時AX中即為無符號二進制數(shù)。然后將無符號二進制數(shù)轉(zhuǎn)換成十進制數(shù),可采
9、用將AX除以 10,得到第一個商和第一個余數(shù),第一個余數(shù)就是所求十進制數(shù)的個位:將第一個商除以10,得到第二個商和余數(shù),第二個余數(shù)就是所求十進制數(shù)的十位數(shù),重復以上過程,一直循環(huán)到商為0時,得到的余數(shù)就是所求十進制數(shù)的最高位數(shù)。這就是數(shù)制轉(zhuǎn)換中常用的“除模留余倒排列”法則。2.設計方案(1)實現(xiàn)十六進制數(shù)向二進制數(shù)的轉(zhuǎn)換第一步:實現(xiàn)十六進制數(shù)的輸入和對應二進制數(shù)的轉(zhuǎn)換。利用DOS系統(tǒng)功能中的1號輸入字符的功能,接收輸入的十六進制數(shù),將其轉(zhuǎn)換成對應的二進制數(shù)(若是0-9之間的數(shù)直接屏蔽高4位,若是A-F之間的書在屏蔽高4位后還要加9)。BX中存放的是二進制數(shù)的結(jié)果,利用算數(shù)左移指令講BX左移4位
10、,然后與下一次轉(zhuǎn)換后的數(shù)相加。如此循環(huán)4次,得到對應的二進制數(shù)。第二步:實現(xiàn)顯示轉(zhuǎn)化后的二進制數(shù)。利用ROL和RCL指令,從最高為起循環(huán)取出每位二進制數(shù),將其轉(zhuǎn)換成對應的ASSCII碼,調(diào)用DOS系統(tǒng)功能調(diào)用中2號功能顯示。(2)實現(xiàn)二進制數(shù)向十六進制數(shù)的轉(zhuǎn)換。用循環(huán)左移指令ROL每次移動4位,取出移到最低的4位,利用十六進制數(shù)所對應的ASSCII碼比其本身大30H(0-9)或37H(A-Z)的關(guān)系,將低4位轉(zhuǎn)換成所對應的ASSCII碼,在調(diào)用DOS系統(tǒng)功能2號(顯示字符)功能,將轉(zhuǎn)換后的字符顯示出來,如此循環(huán)四次。(3)本程序的難點是如何把二進制轉(zhuǎn)化為十進制,并將其輸出。我們采用了除以10,
11、把取余數(shù)保存的方法,現(xiàn)在以十進制數(shù)132為例,采用除以10并取余的方法,主要是因為不知道有二進制轉(zhuǎn)化的真值所構(gòu)成的十進制數(shù)有幾位。132/10=13.2 保存2,又因為13!=0,所以繼續(xù)運算13/10=1.3 保存3,又因為1!=0,所以繼續(xù)運算1/10=01 保存1,0=0,所以結(jié)束此運算如下圖所示:經(jīng)過相關(guān)處理,把保存的數(shù)據(jù)變成0-9的ASSCII碼。所以保存的數(shù)據(jù)為:“2”“3”“1”在經(jīng)過轉(zhuǎn)置,把倒序的結(jié)果順序化,得到結(jié)果:“1”“3”“2”這樣就解決了二進制轉(zhuǎn)化為十進制數(shù)的算法。四總原理圖開 始顯示菜單信息調(diào)入鍵盤輸入判斷輸入Y or N調(diào)用BINIDEC子程序轉(zhuǎn)換結(jié)束為N調(diào)用HE
12、XIBIN子程序為Y五程序清單1.方法一CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE START: CALL HEXIBIN ;16-2 CALL CRLF ;換行CALL BINIDEC ;2-10 CALL CRLF JMP MAIN ;get next input RET MAIN ENDP HEXIBIN PROC NEAR MOV BX,0 ;clear BX for number NEWCHAR: MOV AH,01H ;keyboard input INT 21H ;call DOS SUB AL,30H ;ASCII to binary J
13、L EXIT ;jump if<0 CMP AL,10D ;is it > 9d JL ADD_TO ;yes,so it's digit ;not digit(0-9),may be letter(a to f) SUB AL,27H ;convert ASCII to binary CMP AL,0AH ;is it <0a hex? JL EXIT ;yes,not letter CMP AL,10H ;is it > 0f hex? JGE EXIT ;yes,not letter ;is hex digit,add to number in BX AD
14、D_TO: MOV CL,4 SHL BX,CL MOV AH,0 ADD BX,AX JMP NEWCHAR EXIT: RET HEXIBIN ENDP BINIDEC PROC NEAR MOV CX,10000D CALL DEC_DIV MOV CX,1000D CALL DEC_DIV MOV CX,100D CALL DEC_DIV MOV CX,10D CALL DEC_DIV MOV CX,1D CALL DEC_DIV RET DEC_DIV PROC NEAR MOV AX,BX ;number low half MOV DX,0 ;zero out high half
15、DIV CX MOV BX,DX ;remainder into BX MOV DL,AL ;quotient into DL ;print the contents of DL on screen ADD DL,30H ;convert to ASCII MOV AH,02H INT 21H RET DEC_DIV ENDP BINIDEC ENDP CRLF PROC NEAR MOV DL,0AH MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H RET CRLF ENDP CODE ENDS END START2.方法二data segm
16、ent m dw 10 dup(?) rec db 5 dup(?) ;記錄因子 MESSAGE5 DB 'Welcome to the system!',13,10,13,10 DB 'The function of the program is changing H(16)numbers into D(10) numbers.',13,10 DB 'Please enter the number.',13,10,13,10,'$' data ends code segment main proc far assume cs:c
17、ode,ds:data start: push ds mov ax,data mov ds,ax mov bx,0 LEA DX,MESSAGE5 MOV AH,09H INT 21H ;輸出提示語newchar: mov ah,1 ;鍵盤輸入 int 21h sub al,30h jl ini ; <0輸出 cmp al,10 jl add_to sub al,27h ; af cmp al,0ah jl ini ; <a輸出 cmp al,10h jge ini ; >f輸出 add_to: mov cl,4 shl bx,cl mov ah,0 add bx,ax mo
18、v m,bx jmp newchar ini: mov ax,m mov bx,10 mov si,4 change: mov dx,0 div bx mov rec+si,dl dec si cmp ax,0 ja change output: inc si mov dl,rec+si add dl,30h mov ah,02h int 21h cmp si,4 jb output mov dl,20h mov ah,02h int 21h exit: mov ah,4ch int 21h main endp code ends end start六運行結(jié)果通過設計和編寫程序代碼,運行程序后,其結(jié)果先為顯示開始界面幾位菜單界面,而后隨意輸入一個十六進制數(shù),打完字敲回車,馬上出現(xiàn)所對應的十進制數(shù)。同時,再打回車,可以再輸入十六進制數(shù),并且可以循環(huán)運行。七實驗體會通過這次的課程設計,讓我們對匯編語言有了更進一步的認識,加強了我們用匯編語言的能力。并經(jīng)過修改,完成了簡單的設計。匯編語言程序設計是一門很抽象的科學,學起來也比較難,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡協(xié)議分析與應用試題及答案
- 西方政治制度下的經(jīng)濟發(fā)展政策試題及答案
- 項目管理的工具與方法應用實例試題及答案
- 政治輿論影響研究試題及答案
- 深度透視2025年軟件設計師考試試題及答案
- 2025年羥丙纖維素合作協(xié)議書
- 軟件設計師考試關(guān)鍵考點及試題答案
- 公共服務政策的效果研究試題及答案
- 創(chuàng)建共享經(jīng)濟的公共政策機制試題及答案
- 學習進階軟件設計師考試試題及答案
- 2023年二級教師初定職稱呈報表
- GB/T 30308-2013氟橡膠通用規(guī)范和評價方法
- GA 1517-2018金銀珠寶營業(yè)場所安全防范要求
- 關(guān)建過程明細表
- 《飛翔的女武神》課件
- 胎盤早剝預案演練腳本
- 中鐵項目XXXX年2月份經(jīng)濟活動分析
- 老年患者術(shù)前評估中國專家建議
- 2022年學??照{(diào)使用管理制度
- 生產(chǎn)良率系統(tǒng)統(tǒng)計表
- 代理機構(gòu)服務質(zhì)量考核評價表
評論
0/150
提交評論