匯編語言課程設(shè)計(jì)--代碼轉(zhuǎn)換程序_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論