版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 匯編語言課程設(shè)計(jì)報(bào)告</p><p> ( 2011 -- 2012 年度第 2 學(xué)期)</p><p><b> 代碼轉(zhuǎn)換程序</b></p><p> 專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 學(xué)生姓名</p><p> 班級</p><p>
2、學(xué)號</p><p> 指導(dǎo)教師</p><p> 完成日期2012年6月22日</p><p><b> 目 錄</b></p><p><b> 1 設(shè)計(jì)目的1</b></p><p><b> 2 設(shè)計(jì)內(nèi)容1</b></p&g
3、t;<p><b> 3 實(shí)現(xiàn)方法1</b></p><p> 3.1 系統(tǒng)目標(biāo)1</p><p> 3.2 主體功能1</p><p> 3.3 開發(fā)環(huán)境1</p><p><b> 4系統(tǒng)概要設(shè)計(jì)1</b></p><p> 4.1 系
4、統(tǒng)的功能模塊劃分1</p><p> 4.2 系統(tǒng)流程圖2</p><p><b> 5系統(tǒng)詳細(xì)設(shè)計(jì)4</b></p><p> 5.1 程序功能菜單模塊設(shè)計(jì)4</p><p> 5.2小寫字母向大寫字母轉(zhuǎn)換模塊設(shè)計(jì)4</p><p> 5.3大寫字母向小寫字母轉(zhuǎn)換模塊設(shè)計(jì)5
5、</p><p> 5.4 二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)5</p><p> 5.5 十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)5</p><p> 5.6 十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)6</p><p><b> 6 測試6</b></p><p> 6.1 測試方案6<
6、/p><p> 6.2 測試結(jié)果7</p><p><b> 7小 結(jié)7</b></p><p><b> 參考文獻(xiàn)9</b></p><p><b> 附 錄10</b></p><p> 附錄1 源程序清單10</p
7、><p> 附錄1.1程序功能菜單模塊源程序10</p><p> 附錄1.2小寫字母向大寫字母轉(zhuǎn)換模塊源程序12</p><p> 附錄1.3大寫字母向小寫字母轉(zhuǎn)換模塊源程序13</p><p> 附錄1.4二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊源程序13</p><p> 附錄1.5十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊
8、源程序14</p><p> 附錄1.6十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊源程序15</p><p><b> 代碼轉(zhuǎn)換程序</b></p><p> 1 設(shè)計(jì)目的 </p><p> 本課程設(shè)計(jì)是在學(xué)完教學(xué)大綱規(guī)定的全部內(nèi)容、完成所有實(shí)踐環(huán)節(jié)的基礎(chǔ)上,旨在深化學(xué)生學(xué)習(xí)的匯編語言課程基本知識,進(jìn)一步掌
9、握匯編語言程序設(shè)計(jì)方法,提高分析問題、解決問題的綜合應(yīng)用能力。</p><p><b> 2 設(shè)計(jì)內(nèi)容</b></p><p> 功能菜單的編制;小寫字母向大寫字母的轉(zhuǎn)換;大寫字母向小寫字母的轉(zhuǎn)換;二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換;十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換;十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。</p><p><b> 3 實(shí)現(xiàn)方法<
10、/b></p><p><b> 3.1 系統(tǒng)目標(biāo)</b></p><p> 實(shí)現(xiàn)代碼轉(zhuǎn)換:大小寫字母之間轉(zhuǎn)換,二進(jìn)制、十進(jìn)制、十六進(jìn)制之間的相互轉(zhuǎn)換。</p><p><b> 3.2 主體功能</b></p><p> Change1模塊實(shí)現(xiàn)小寫字母向大寫字母的轉(zhuǎn)換,change2
11、模塊實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換。在實(shí)際應(yīng)用中,不僅有數(shù)值的運(yùn)算,還有更多的是大量的非數(shù)值的處理,特別是在現(xiàn)代或今后的社會活動中,非數(shù)值處理在管理程序、文字處理和過程控制中將會得到廣泛的應(yīng)用。</p><p> Change3模塊實(shí)現(xiàn)二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換,change4實(shí)現(xiàn)十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換,change5實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。由于用戶輸入的數(shù)一般是用十進(jìn)制表示的,而這些數(shù)在計(jì)算機(jī)內(nèi)存儲
12、、運(yùn)算時(shí)一般都是用二進(jìn)制,這就涉及到了十進(jìn)制數(shù)向二進(jìn)制的轉(zhuǎn)換問題,所以二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換算法是匯編語言程序員應(yīng)該掌握的基本算法之一。</p><p><b> 3.3 開發(fā)環(huán)境</b></p><p> TASM5.0集成環(huán)境。</p><p><b> 4系統(tǒng)概要設(shè)計(jì)</b></p><p
13、> 4.1 系統(tǒng)的功能模塊劃分</p><p> 本程序共有7個(gè)模塊,start模塊為核心模塊,該模塊調(diào)用main模塊和change5模塊,main模塊又調(diào)用change1、change2、change3和change4四個(gè)模塊,其中:change1模塊實(shí)現(xiàn)小寫字母到大寫字母的轉(zhuǎn)換;change2模塊實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換;Change3模塊實(shí)現(xiàn)二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換;change4實(shí)現(xiàn)十六進(jìn)
14、制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換;change5實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。</p><p><b> 4.2 系統(tǒng)流程圖</b></p><p> 圖3-2-1 程序流程圖</p><p> 圖3-2 小寫向大寫轉(zhuǎn)換 圖3-3 大寫向小寫轉(zhuǎn)換</p><p> 圖3-4 二進(jìn)制向
15、十六進(jìn)制轉(zhuǎn)換 圖3-5 十六進(jìn)制向二進(jìn)制轉(zhuǎn)換</p><p> 圖3-6 十六進(jìn)制向十進(jìn)制轉(zhuǎn)換</p><p><b> 5系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> 5.1 程序功能菜單模塊設(shè)計(jì)</p><p> 主菜單的功能選擇菜單的代碼如下:</p><p>
16、; ;*****主程序中的提示信息*****</p><p> str1 DB 0AH,0DH, '******************************************************$'</p><p> str2 DB 0AH,0DH, '** Welcome you !
17、 **$'</p><p> str3 DB 0AH,0DH, '**--------------------------------------------------------------------------**$'</p><p> str4 DB 0AH,0DH, '** This is programme of
18、code conversion! **$'</p><p> str5 DB 0AH,0DH, '** Please input your choice: **$'</p><p> str6 DB 0AH,0DH, '** 1:Lowercase lette
19、rs to Capital letters **$'</p><p> str7 DB 0AH,0DH, '** 2:Capital letters to Lowercase letters **$'</p><p> str8 DB 0AH,0DH, '** 3:Binary
20、to Hex **$'</p><p> str9 DB 0AH,0DH, '** 4:Hex to Binary **$'</p><p> str10 DB 0AH,0DH, '** 5:Hex to Dec
21、imal **$'</p><p> str11 DB 0AH,0DH, '** 6:Quit or exit **$'</p><p> str12 DB 0AH,0DH, '*************************
22、*****************************$'</p><p> 通過disp語言將其打印在屏幕上,用戶可以通過輸入不同的字母來選擇實(shí)現(xiàn)不同的功能。(輸入的字母不區(qū)分大小寫)</p><p> 5.2小寫字母向大寫字母轉(zhuǎn)換模塊設(shè)計(jì)</p><p> 先從鍵盤上讀取字符:</p><p> start:push
23、ds</p><p><b> sub ax,ax</b></p><p><b> push ax</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> 并判斷字符是否有效:
24、</p><p> again:mov ah,1</p><p><b> int 21h </b></p><p> cmp al,'0'</p><p> 得到有效字符之后,通過ASCII值進(jìn)行運(yùn)算得到相應(yīng)的大寫字母并輸出。</p><p> 5.3大寫字母向小寫字母
25、轉(zhuǎn)換模塊設(shè)計(jì)</p><p> 先從鍵盤上讀取字符:</p><p> start:push ds</p><p><b> sub ax,ax</b></p><p><b> push ax</b></p><p> mov ax,data</p>
26、<p><b> mov ds,ax</b></p><p> 并判斷字符是否有效:</p><p> again:mov ah,1</p><p><b> int 21h </b></p><p> cmp al,'0'</p><p&g
27、t; 得到有效字符之后,通過ASCII值進(jìn)行運(yùn)算得到相應(yīng)的小寫字母并輸出。</p><p> 5.4 二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)</p><p> 先從鍵盤上讀取字符:</p><p> start:push ds</p><p><b> sub ax,ax</b></p><p&g
28、t;<b> push ax</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> 并判斷字符是否有效:</p><p> again:mov ah,1</p><p><b> int
29、 21h </b></p><p> cmp al,'0'</p><p> 當(dāng)?shù)玫接行ё址麜r(shí),對得到的二進(jìn)制數(shù)進(jìn)行運(yùn)算得到十六進(jìn)制數(shù)并輸出,在輸出時(shí)在數(shù)字的結(jié)尾加上十六進(jìn)制標(biāo)識符H。</p><p> 5.5 十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)</p><p> 先從鍵盤上讀取字符:</p>
30、<p> start:push ds</p><p><b> sub ax,ax</b></p><p><b> push ax</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p>
31、<p> 并判斷字符是否有效:</p><p> again:mov ah,1</p><p><b> int 21h </b></p><p> cmp al,'0'</p><p> 當(dāng)?shù)玫接行ё址麜r(shí),對得到的十六進(jìn)制數(shù)進(jìn)行運(yùn)算得到二進(jìn)制進(jìn)制數(shù)并輸出,在輸出時(shí)在數(shù)字的結(jié)尾加上二
32、進(jìn)制數(shù)標(biāo)識符B。</p><p> 5.6 十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)</p><p> 先從鍵盤上讀取字符:</p><p> start:push ds</p><p><b> sub ax,ax</b></p><p><b> push ax</b>
33、</p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> 并判斷字符是否有效:</p><p> again:mov ah,1</p><p><b> int 21h </b></p><
34、;p> cmp al,'0'</p><p> 當(dāng)?shù)玫接行ё址麜r(shí),對得到的十六進(jìn)制數(shù)進(jìn)行運(yùn)算得到十進(jìn)制數(shù)并輸出,在輸出時(shí)在數(shù)字的結(jié)尾加上十進(jìn)制數(shù)標(biāo)識符D。</p><p><b> 6 測試</b></p><p><b> 6.1 測試方案</b></p><p>
35、 圖6-1-1 程序運(yùn)行時(shí)的主界面</p><p> 圖6-1-2 小寫字母轉(zhuǎn)換為大寫字母</p><p> 圖6-1-3 大寫字母轉(zhuǎn)換為小寫字母</p><p> 圖6-1-4 二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)</p><p> 圖6-1-5 十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)</p><p> 圖6-1-6 十六進(jìn)制數(shù)轉(zhuǎn)換
36、為十進(jìn)制數(shù)</p><p> 圖6-1-7 當(dāng)輸入錯(cuò)誤時(shí)提示重新輸入</p><p><b> 6.2 測試結(jié)果</b></p><p> 程序在設(shè)計(jì)完成之初匯編時(shí)出現(xiàn)非法錯(cuò)誤,在進(jìn)行修改后可正常運(yùn)行。程序能夠正常的進(jìn)行大小寫字母的轉(zhuǎn)換,二進(jìn)制數(shù)、十進(jìn)制數(shù)、十六進(jìn)制數(shù)之間的轉(zhuǎn)換,但在主程序和子程序之間的銜接仍存在部分問題,未完全達(dá)到預(yù)計(jì)的
37、功能,輸入選項(xiàng)與子程序的調(diào)用存在部分缺陷,需要進(jìn)一步進(jìn)行細(xì)節(jié)上的改進(jìn)。</p><p><b> 7小 結(jié)</b></p><p> 經(jīng)過近一個(gè)星期的工作,才把課程設(shè)計(jì)完成。經(jīng)過這次課程設(shè)計(jì),我加深了對匯編語言的理解,也對上課時(shí)所說的語法有了深刻的認(rèn)識。相對于以前學(xué)習(xí)的高級語言,對匯編語言的第一印象是很酷,因?yàn)樗艹橄?。懷著崇拜的心情學(xué)著匯編語言,雖然枯燥,
38、但是每當(dāng)完成一個(gè)很簡單的程序就會感到非常的有成就感。 當(dāng)我剛開始選擇這個(gè)題目是因?yàn)檎n本上有一個(gè)相近的代碼轉(zhuǎn)換,所以感覺這個(gè)題目應(yīng)該很好寫??墒堑鹊秸嬲齽邮值臅r(shí)候就感到了困難。首先是對字符串的輸入輸出的處理, 解決不了就改成了字母大小寫轉(zhuǎn)換是每次只輸入一個(gè)字母,然后根據(jù)其大小寫轉(zhuǎn)換,如大寫就轉(zhuǎn)換成小寫,否則反之。然而在隨后的進(jìn)制轉(zhuǎn)換中用遇到了同樣的問題,發(fā)現(xiàn) 這是一個(gè)不能不解決的問題,隨后查閱了資料才解決。</p><
39、p> 課程設(shè)計(jì)過程,是對團(tuán)隊(duì)精神考察的過程,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請教或上網(wǎng)查詢或者同學(xué)間相互討論,只要認(rèn)真鉆研,動腦思考,動手實(shí)踐,就沒有克服不了的難題。</p><p> 回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是
40、苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正的掌握所學(xué)的知識,從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。 </p><p>&
41、lt;b> 參考文獻(xiàn)</b></p><p> [1]劉其明. 匯編語言程序設(shè)計(jì)教程[M]. 江蘇:中國礦業(yè)大學(xué)出版社, 2010.10</p><p> [2]沈美明. IBM-PC匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教程[M]. 北京:清華大學(xué)出版社,2010.6</p><p><b> 附 錄</b></p>
42、<p><b> 附錄1 源程序清單</b></p><p> 附錄1.1程序功能菜單模塊源程序</p><p><b> start主菜單:</b></p><p> extrn main:far,change1:far,change2:far,change3:far,change4:far,cha
43、nge5:far</p><p> stack segment para public 'stack'</p><p> db 200 dup (0)</p><p> stack ends</p><p> data segment</p><p> ;*****主程序中的提示信息*****
44、</p><p> str1 DB 0AH,0DH, '******************************************************$'</p><p> str2 DB 0AH,0DH, '** Welcome you ! **$'</p&
45、gt;<p> str3 DB 0AH,0DH, '**--------------------------------------------------------------------------**$'</p><p> str4 DB 0AH,0DH, '** This is programme of code conversion!
46、 **$'</p><p> str5 DB 0AH,0DH, '** Please input your choice: **$'</p><p> str6 DB 0AH,0DH, '** 1:Lowercase letters to Capital letters
47、 **$'</p><p> str7 DB 0AH,0DH, '** 2:Capital letters to Lowercase letters **$'</p><p> str8 DB 0AH,0DH, '** 3:Binary to Hex
48、 **$'</p><p> str9 DB 0AH,0DH, '** 4:Hex to Binary **$'</p><p> str10 DB 0AH,0DH, '** 5:Hex to Decimal
49、 **$'</p><p> str11 DB 0AH,0DH, '** 6:Quit or exit **$'</p><p> str12 DB 0AH,0DH, '**************************************************
50、****$'</p><p> str13 DB 0Ah,0Dh,'Input error,please repess!','$'</p><p> str14 DB 0AH,0DH,0AH,0DH, 'Input your choice:','$'</p><p><b> d
51、ata ends</b></p><p> code segment</p><p> assume cs:code,ds:data,ss:stack</p><p> start: mov ax,data</p><p><b> mov ds,ax</b></p><p>
52、 disp macro m</p><p><b> lea dx,m</b></p><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p><b> endm</b></p>
53、<p><b> disp str1</b></p><p><b> disp str2</b></p><p><b> disp str3</b></p><p><b> disp str4</b></p><p><b
54、> disp str5</b></p><p><b> disp str6</b></p><p><b> disp str7</b></p><p><b> disp str8</b></p><p><b> disp str9&
55、lt;/b></p><p> disp str10</p><p> disp str11</p><p> disp str12</p><p> disp str14</p><p> lop: mov ah,8</p><p><b> int 21h<
56、;/b></p><p> cmp al,'1'</p><p><b> jz ltol</b></p><p> cmp al,'2'</p><p><b> jz lto2</b></p><p> cmp al,&
57、#39;3'</p><p><b> jz lto3</b></p><p> cmp al,'4'</p><p><b> jz lto4</b></p><p> cmp al,'5'</p><p><b&g
58、t; jz lto5</b></p><p> cmp al,'6'</p><p><b> jz exit</b></p><p> disp str13</p><p> disp str14</p><p><b> jmp lop<
59、;/b></p><p> ltol: call main</p><p> call change1</p><p><b> jmp lop</b></p><p> lto2: call main</p><p> call change2</p><p&
60、gt;<b> jmp lop</b></p><p> lto3: call main</p><p> call change3</p><p><b> jmp lop</b></p><p> lto4: call main</p><p> call c
61、hange4</p><p><b> jmp lop</b></p><p> lto5: call main</p><p> call change5</p><p><b> jmp lop</b></p><p> exit: mov ah,4ch<
62、/p><p><b> int 21h</b></p><p> code ends</p><p><b> end start</b></p><p><b> main菜單:</b></p><p> public info1,info2
63、,bufa,bufb,buf,main,info0,info3</p><p> extrn change1:far,change2:far,change3:far,change4:far</p><p> data segment</p><p> info0 db 0ah,0dh,'this is the change of letter to
64、 leter:$' </p><p> info1 db 0ah,0dh,'please input string:$'</p><p> info2 db 0ah,0dh,'output string:$'</p><p> bufa db 81</p><p><b>
65、db ?</b></p><p> db 80 dup (?)</p><p> bufb db 80 dup (?)</p><p> info3 db 0ah,0dh,'this is the change of digital to digital:',0ah,0dh,'$'</p><p
66、> buf db 0dh,0ah,'the number is:0100101010001111b',0ah,0dh,'the result is:$'</p><p><b> data ends</b></p><p> stack segment stack</p><p> db 200
67、 dup (?)</p><p> stack ends</p><p> code segment</p><p> main proc far</p><p> assume ds:data,cs:code,ss:stack</p><p> mov ax,data</p><p>
68、;<b> mov ds,ax</b></p><p> disp macro m</p><p><b> lea dx,m</b></p><p><b> mov ah,9</b></p><p><b> int 21h</b><
69、/p><p><b> endm</b></p><p> call change1</p><p> call change2</p><p> disp info3</p><p><b> disp buf</b></p><p> c
70、all change3</p><p> call change4</p><p><b> ret</b></p><p><b> main endp</b></p><p><b> code ends</b></p><p><b&
71、gt; end </b></p><p> 附錄1.2小寫字母向大寫字母轉(zhuǎn)換模塊源程序</p><p> extrn info1:byte,info2:byte,bufa:byte,bufb:byte,info0:byte</p><p> public change1</p><p> code segment<
72、/p><p> assume cs:code</p><p> lowtohigh proc near</p><p> cmp al,'a'</p><p><b> jb stop</b></p><p> cmp al,'z'</p>&l
73、t;p><b> ja stop</b></p><p> sub al,20h</p><p><b> stop :ret</b></p><p> lowtohigh endp</p><p> change1 proc far</p><p> le
74、a dx,info0</p><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p> lea dx,info1</p><p><b> mov ah,9</b></p><p><b
75、> int 21h</b></p><p> lea dx,bufa</p><p><b> mov ah,10</b></p><p><b> int 21h</b></p><p> lea si,bufa+1</p><p> lea
76、di,bufb</p><p><b> mov ch,0</b></p><p> mov cl,[si]</p><p><b> add si,1</b></p><p> next:mov al,[si]</p><p> call lowtohigh<
77、;/p><p> mov [di],al</p><p><b> inc si</b></p><p><b> inc di</b></p><p><b> loop next</b></p><p> mov byte ptr [di],&
78、#39;$'</p><p> lea dx,info2</p><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p> lea dx,bufb</p><p><b> mov ah,9&l
79、t;/b></p><p><b> int 21h</b></p><p><b> ret</b></p><p> change1 endp</p><p><b> code ends</b></p><p><b>
80、end </b></p><p> 附錄1.3大寫字母向小寫字母轉(zhuǎn)換模塊源程序</p><p> extrn info1:byte,info2:byte,bufa:byte,bufb:byte</p><p> public change2</p><p> code segment</p><p>
81、; assume cs:code</p><p> hightolow proc near</p><p> cmp al,'A'</p><p><b> jb stop</b></p><p> cmp al,'Z'</p><p><b>
82、; ja stop</b></p><p> add al,20h</p><p><b> stop:ret</b></p><p> hightolow endp</p><p> change2 proc far</p><p> lea dx,info1</p
83、><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p> lea dx,bufa</p><p><b> mov ah,10</b></p><p><b> int 21h<
84、;/b></p><p> lea si,bufa+1</p><p> lea di,bufb</p><p><b> mov ch,0</b></p><p> mov cl,[si]</p><p><b> inc si</b></p>
85、<p> next:mov al,[si]</p><p> call hightolow</p><p> mov [di],al</p><p><b> inc si</b></p><p><b> inc di</b></p><p><
86、b> loop next</b></p><p> mov byte ptr [di] ,'$'</p><p> lea dx,info2</p><p><b> mov ah,9</b></p><p><b> int 21h</b></p&
87、gt;<p> lea dx,bufb</p><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p><b> ret</b></p><p> change2 endp</p>&l
88、t;p><b> code ends</b></p><p><b> end</b></p><p> 附錄1.4二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊源程序</p><p> extrn buf:byte,info3:byte</p><p> public change3</p&g
89、t;<p> code segment</p><p> change3 proc far</p><p> assume cs:code</p><p><b> sub ax,ax</b></p><p><b> mov ch,4</b></p><
90、p><b> mov cl,4</b></p><p> mov bx,4a8fh</p><p> rotate: rol bx,cl</p><p><b> mov al,bl</b></p><p> and al,0fh</p><p> add
91、al,30h</p><p> cmp al,3ah</p><p> jl printit</p><p><b> add al,7h</b></p><p> printit: mov dl,al</p><p><b> mov ah,2</b></p
92、><p><b> int 21h</b></p><p><b> dec ch</b></p><p> jnz rotate</p><p> mov dl,'H'</p><p><b> mov ah,2</b></
93、p><p><b> int 21h</b></p><p><b> ret</b></p><p> change3 endp</p><p> code ends</p><p><b> end</b></p>&l
94、t;p> 附錄1.5十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊源程序</p><p> public change4</p><p> data segment</p><p> buf db 0ah,0dh,'please input the four hexnumber:$'</p><p><b> dat
95、a ends</b></p><p> code segment</p><p> assume cs:code,ds:data</p><p> change4 proc far</p><p> mov ax,data</p><p><b> mov ds,ax</b>
96、</p><p> lea dx,buf</p><p><b> mov ah,9</b></p><p><b> int 21h</b></p><p><b> mov bx,0</b></p><p><b> mov ch
97、,4</b></p><p> input: mov cl,4</p><p><b> sal bx,cl</b></p><p><b> mov ah,1</b></p><p><b> int 21h</b></p><p>
98、; cmp al,39h</p><p><b> ja af</b></p><p> and al,0fh</p><p> jmp binary</p><p> af: and al,0fh</p><p><b> add al,9</b><
99、/p><p> binary: or bl,al</p><p><b> dec ch</b></p><p><b> cmp ch,0</b></p><p><b> jne input</b></p><p> mov dl,'H
100、'</p><p><b> mov ah,2</b></p><p><b> int 21h</b></p><p> mov dl,0ah</p><p><b> mov ah,2</b></p><p><b> i
101、nt 21h</b></p><p> mov dl,0dh</p><p><b> mov ah,02</b></p><p><b> int 21h</b></p><p><b> mov cx,16</b></p><p>
102、; disp: mov dl,0</p><p><b> rol bx,1</b></p><p><b> rcl dl,1</b></p><p><b> or dl,30h</b></p><p> mov ah,02h</p><p&
103、gt;<b> int 21h</b></p><p><b> loop disp</b></p><p> mov dl,'B'</p><p><b> mov ah,2</b></p><p><b> int 21h</b&g
104、t;</p><p><b> ret</b></p><p> change4 endp</p><p> code ends</p><p><b> end</b></p><p> 附錄1.6十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊源程序</p><
105、;p> public change5</p><p> data segment</p><p> binary dw 7fffh,50h</p><p> n=($-binary)/2</p><p> buf db 7 dup(0)</p><p> info1 db 0ah,0dh,'
106、this is the change from hexnumber to decimal:$'</p><p> info2 db 0ah,0dh,'the number is:7fffh,50h$',0ah,0dh</p><p> info3 db 0ah,0dh,'the result is:$'</p><p>&
107、lt;b> data ends</b></p><p> stack segment stack</p><p> db 200 dup(0)</p><p> stack ends </p><p> code segment</p><p> assume cs:code,ds
108、:data,ss:stack</p><p> f2to10 proc near</p><p><b> push bx</b></p><p><b> push dx</b></p><p><b> push si</b></p><p>
109、;<b> push cx</b></p><p> disp macro m</p><p><b> lea dx,m</b></p><p><b> mov ah,9</b></p><p><b> int 21h</b></p
110、><p><b> endm</b></p><p> lea si,buf</p><p><b> or ax,ax</b></p><p><b> jns plus</b></p><p><b> neg ax</b&g
111、t;</p><p> mov [si],byte ptr '-'</p><p><b> inc si</b></p><p> plus: mov bx,10</p><p><b> mov cx,0</b></p><p> lop1: m
112、ov dx,0</p><p><b> div bx</b></p><p><b> push dx</b></p><p><b> inc cx</b></p><p><b> or ax,ax</b></p><p&
113、gt;<b> jne lop1</b></p><p> lop2: pop ax</p><p><b> cmp al,10</b></p><p><b> jb l1</b></p><p><b> add al,7</b></
114、p><p> l1: add al,30h</p><p> mov [si],al</p><p><b> inc si</b></p><p><b> dec cx</b></p><p><b> jne lop2</b></p
115、><p> mov [si],byte ptr 'D'</p><p><b> inc si</b></p><p> mov [si],byte ptr '$'</p><p> disp info3</p><p><b> disp buf
116、</b></p><p><b> pop cx</b></p><p><b> pop si</b></p><p><b> pop dx</b></p><p><b> pop bx</b></p><p&
117、gt;<b> ret</b></p><p> f2to10 endp</p><p> change5 proc far</p><p> start: mov ax,data</p><p><b> mov ds,ax</b></p><p> disp
118、info1</p><p> disp info2</p><p><b> mov cx,n</b></p><p> lea di,binary</p><p> lopa: mov ax,[di]</p><p> call f2to10</p><p>
119、<b> add di,2</b></p><p><b> loop lopa</b></p><p><b> ret</b></p><p> change5 endp</p><p><b> code ends</b></p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 匯編語言程序設(shè)計(jì)-課程設(shè)計(jì)
- 匯編語言程序設(shè)計(jì)課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì) 音樂點(diǎn)播程序
- 匯編語言課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)
- 《匯編語言》課程設(shè)計(jì)報(bào)告--判斷閏年程序
- 匯編語言課程設(shè)計(jì)--用匯編語言實(shí)現(xiàn)顯示系統(tǒng)時(shí)間的程序
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)安排
- 匯編語言課程設(shè)計(jì)報(bào)告
- 匯編語言課程設(shè)計(jì)報(bào)告a
- 匯編語言課程設(shè)計(jì)報(bào)告---字母大小寫轉(zhuǎn)換
- 匯編語言程序設(shè)計(jì)課程教案
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 匯編語言推箱子課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤鋼琴匯編語言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 匯編語言課程設(shè)計(jì)---大小寫字母轉(zhuǎn)換
- 匯編語言課程設(shè)計(jì)----電子鬧鐘
評論
0/150
提交評論