![匯編語言數(shù)制顯示的數(shù)制形式_第1頁](http://file4.renrendoc.com/view/0754798c9b049ea64626e26eea1ae2e6/0754798c9b049ea64626e26eea1ae2e61.gif)
![匯編語言數(shù)制顯示的數(shù)制形式_第2頁](http://file4.renrendoc.com/view/0754798c9b049ea64626e26eea1ae2e6/0754798c9b049ea64626e26eea1ae2e62.gif)
![匯編語言數(shù)制顯示的數(shù)制形式_第3頁](http://file4.renrendoc.com/view/0754798c9b049ea64626e26eea1ae2e6/0754798c9b049ea64626e26eea1ae2e63.gif)
![匯編語言數(shù)制顯示的數(shù)制形式_第4頁](http://file4.renrendoc.com/view/0754798c9b049ea64626e26eea1ae2e6/0754798c9b049ea64626e26eea1ae2e64.gif)
![匯編語言數(shù)制顯示的數(shù)制形式_第5頁](http://file4.renrendoc.com/view/0754798c9b049ea64626e26eea1ae2e6/0754798c9b049ea64626e26eea1ae2e65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編語言數(shù)制顯示的數(shù)制形式
如果我們正在解決一個(gè)與數(shù)字相關(guān)的問題,我們應(yīng)該直觀地顯示數(shù)值。根據(jù)不同的需求,數(shù)據(jù)的顯示形式不同,如二進(jìn)制、進(jìn)士制、十六進(jìn)制等。計(jì)算機(jī)上的數(shù)據(jù)存儲(chǔ)模式由“0”和“1”組成。對(duì)于顯示數(shù)據(jù),通常需要將其轉(zhuǎn)換為相應(yīng)的ascii代碼,以便在表達(dá)語言環(huán)境中執(zhí)行顯示功能。此外,根據(jù)不同的數(shù)制參數(shù)要求,首先要完成數(shù)制參數(shù)之間的轉(zhuǎn)換。然后,我們討論了如何編程計(jì)數(shù),并根據(jù)二進(jìn)制、十分制和十六進(jìn)制的數(shù)制形式顯示在計(jì)算機(jī)屏幕上。1進(jìn)制的范圍以一個(gè)16位二進(jìn)制整數(shù)為例,假設(shè)此數(shù)放在BX寄存器中,它的二進(jìn)制表示范圍是0至1111111111111111B;十進(jìn)制的范圍是0至65535D;十六進(jìn)制表示范圍是0至0FFFFH.為方便說明,下面介紹按不同進(jìn)制形式顯示的編程思路和算法.1.1循環(huán)體的判斷方法二進(jìn)制只有“0”和“1”兩個(gè)數(shù)字,它們的ASCII碼分別是30H和31H.此時(shí),只要逐位判斷是“0”還是“1”,然后轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼顯示即可.實(shí)際編程時(shí),對(duì)于BX中的十六位二進(jìn)制數(shù),首先設(shè)置一個(gè)循環(huán)次數(shù)為16的循環(huán)體.方法一:首先使用向左移位的指令,然后判斷顯示使用向左的移位指令(ROL)把BX中的數(shù)左移一位,接著通過CPU標(biāo)志寄存器中的CF標(biāo)志,判斷是否有進(jìn)位.若有進(jìn)位(CF=1),說明BX左移之前最高位是1,則顯示字符‘1’;反之,顯示字符‘0’.每次都是通過這種方式由高位到低位逐位判斷、逐位取ASCII碼值、逐位顯示.方法二:首先判斷顯示,然后使用向左移位的指令通過CPU標(biāo)志寄存器中的SF標(biāo)志,判斷最高有效位是否為1,若SF=1,則顯示字符‘1’;反之,顯示字符‘0’.然后再使用向左的移位指令(ROL)把BX中的數(shù)左移一位.每次都是通過這種方式由高位到低位逐位判斷、逐位取ASCII碼值、逐位顯示.1.2個(gè)轉(zhuǎn)換成ascii碼把待轉(zhuǎn)換的數(shù)(在BX中)除以10,得到第一個(gè)商和余數(shù),此時(shí)的第一個(gè)余數(shù)就是所要輸出十進(jìn)制數(shù)的個(gè)位;再用第一個(gè)商除以10,得到第二個(gè)商和余數(shù),此時(shí)的第二個(gè)余數(shù)就是所要輸出十進(jìn)制數(shù)的十位;重復(fù)這一過程直至商為0,此時(shí)的余數(shù)就是所要輸出十進(jìn)制數(shù)的最高位.然后在內(nèi)存中分配一緩沖區(qū),用來存放以上分離出來的十進(jìn)制數(shù)的每一位,再逐個(gè)轉(zhuǎn)換成ASCII碼.轉(zhuǎn)換成ASCII碼的過程很簡單,就是給每個(gè)十進(jìn)制位加上30H即可;最后送顯示器輸出.從轉(zhuǎn)換的過程可以看出,先分離出來的是十進(jìn)制數(shù)的低位,要后顯示;后分離出來的是十進(jìn)制數(shù)的高位,應(yīng)該先顯示.因此在編程時(shí),我們可以利用堆棧操作中“先進(jìn)后出、后進(jìn)先出”的特性,當(dāng)分離出各十進(jìn)制位時(shí)依次入棧,當(dāng)需要逐個(gè)轉(zhuǎn)換成ASCII碼并且顯示在屏幕上時(shí)依次出棧.方法二:以字符串的形式存儲(chǔ)輸出此方法中,分離每一位的算法同方法一,而分配緩沖區(qū)時(shí),是先定義一個(gè)保存余數(shù)的字符串STRING,每次得到的余數(shù)在字符串中依次倒序存放.完成分離操作后,再調(diào)用系統(tǒng)顯示功能把該字符串顯示出來.方法三:把變化的除數(shù)組成數(shù)組把待轉(zhuǎn)換的數(shù)(在BX中)相繼除以10000,1000,100,10,1,所得到的商就是十進(jìn)制數(shù)的每一位.為了便于操作,把這5個(gè)數(shù)組成一個(gè)除數(shù)的字?jǐn)?shù)組DIVARRAY,采用被除數(shù)(32位2進(jìn)制數(shù),保存在DX:AX中)除以除數(shù)(16位2進(jìn)制數(shù),保存在SI中)的方法實(shí)現(xiàn).這樣,每完成一次除法操作后,就把得到的數(shù)值轉(zhuǎn)換成相應(yīng)的ASCII碼值并且顯示出來.1.3對(duì)應(yīng)關(guān)系中所含的同化碼如:20h,32h,32h對(duì)應(yīng)數(shù)字af十六進(jìn)制與二進(jìn)制有很好的對(duì)應(yīng)關(guān)系(每4位二進(jìn)制數(shù)就對(duì)應(yīng)1位十六進(jìn)制數(shù)),顯示時(shí)只需將原二進(jìn)制數(shù)(在BX中)的每4位劃成一組,按組求對(duì)應(yīng)的ASCII碼送顯示器即可.ASCII碼與十六進(jìn)制數(shù)字的對(duì)應(yīng)關(guān)系為:30H~39H對(duì)應(yīng)數(shù)字0~9,41H~46H對(duì)應(yīng)數(shù)字A~F.需要注意的一點(diǎn),從數(shù)字9到A,其ASCII碼間隔了7H.為使一個(gè)十六進(jìn)制數(shù)能按高位到低位依次顯示,實(shí)際編程中,我們對(duì)BX中的數(shù)每次循環(huán)左移一組(4位二進(jìn)制),然后屏蔽掉當(dāng)前高12位,對(duì)當(dāng)前余下的4位(即1位十六進(jìn)制數(shù))求其ASCII碼,要判斷它是0~9還是A~F,是前者則加30H得對(duì)應(yīng)的ASCII碼,后者則要加37H才行,最后送顯示器輸出.以上步驟重復(fù)4次,就可以完成BX中數(shù)以4位十六進(jìn)制的形式顯示出來.當(dāng)然,我們還可以對(duì)BX中數(shù)的低4位判斷輸出,然后再循環(huán)右移一組(4位二進(jìn)制).2語言源程序的例子假設(shè)要將BX寄存器中的數(shù)分別按無符號(hào)二進(jìn)制、十進(jìn)制和十六進(jìn)制顯示在屏幕上,下面給出實(shí)現(xiàn)的匯編源程序,均為子程序方式.2.1基于二進(jìn)制的形式2.1.1sp1movdMOVBX,NMOVCX,16;循環(huán)次數(shù)DISP0:ROLBX,1JCDISP1MOVDL,30H;顯示字符“0”JMPOUTPDISP1:MOVDL,31H;顯示字符“1”O(jiān)UTP:MOVAH,2INT21HLOOPDISP0;循環(huán)次數(shù)判定MOVDL,“B”;顯示字母“B”MOVAH,2INT21H……2.1.2tpdisp1mov采用b顯示生成改進(jìn)形式MOVBX,NMOVCX,16;循環(huán)次數(shù)DISP0:MOVDX,BXJSDISP1MOVDL,30H;顯示字符“0”JMPOUTPDISP1:MOVDL,31H;顯示字符“1”O(jiān)UTP:MOVAH,2INT21HROLBX,1LOOPDISP0;循環(huán)次數(shù)判定MOVDL,“B”;顯示字母“B”MOVAH,2INT21H……此程序的顯示格式固定為16位,最后加上字母“B”表示為二進(jìn)制形式.若(BX)=8080H,則顯示結(jié)果為1000000010000000B;若(BX)=00FFH,則顯示結(jié)果為0000000011111111B.2.2按10進(jìn)制形式2.2.1ascii碼值MOVSI,10MOVCX,5;循環(huán)次數(shù)MOVAX,BXPUSHALL:XORDX,DX;被除數(shù)為32位2進(jìn)制數(shù)DIVSI;除數(shù)為16位2進(jìn)制數(shù)PUSHDX;余數(shù)入棧LOOPPUSHALLMOVCX,5POPALL:POPDXADDDL,30H;數(shù)值轉(zhuǎn)換為ASCII碼值MOVAH,2INT21HLOOPPOPALLMOVDL,“D”;顯示字母“D”MOVAH,2INT21H……2.2.2movhasdilitSTRINGDB5DUP(?),20H,“$”……MOVSI,10MOVCX,5MOVAX,BXMOVDI,OFFSETSTRING+4SAVEALL:XORDX,DX;被除數(shù)為32位2進(jìn)制數(shù)DIVSI;除數(shù)為16位2進(jìn)制數(shù)ADDDL,30HMOV[DI],DLDECDILOOPSAVEALLLEADX,STRING;顯示字符串MOVAH,9INT21HMOVDL,“D”;顯示字母“D”MOVAH,2INT21H……2.2.3生產(chǎn)型確證DIVARRAYDW10000,1000,100,10,1……MOVCX,5MOVAX,BXMOVDI,OFFSETDIVARRAYDIVALL:XORDX,DX;被除數(shù)為32位2進(jìn)制數(shù)DIVWORDPTR[DI];除數(shù)為16位2進(jìn)制數(shù)PUSHDXADDAL,30HMOVDL,ALMOVAH,2INT21HINCDIINCDIPOPAXLOOPDIVALLMOVDL,“D”;顯示字母“D”MOVAH,2INT21H……此程序的顯示格式固定為5位,最后加上字母“D”表示為十進(jìn)制形式.若(BX)=8080H,則顯示結(jié)果為32896D;若(BX)=00FFH,則顯示結(jié)果為00255D.2.3顯示字符“h”的格式MOVCL,4MOVCH,4NEXT:ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLOUTPADDAL,07H;是A~F,要多加7OUTP:MOVDL,ALMOVAH,02HINT21HDECCHCMPCH,0JANEXTMOVDL,’H’;顯示字母“H”MOVAH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩老師心得體會(huì)15篇
- 國土分局業(yè)務(wù)知識(shí)
- 醫(yī)務(wù)人員洗手相關(guān)知識(shí)
- 正頜手術(shù)加速康復(fù)外科臨床路徑指標(biāo)體系構(gòu)建及對(duì)術(shù)后康復(fù)效果影響
- 基于深度學(xué)習(xí)的PMU異常數(shù)據(jù)檢測方法研究
- 二零二五年度綠色環(huán)保消防設(shè)施安裝與維護(hù)合同協(xié)議書3篇
- 2025版水果種植基地與冷鏈物流企業(yè)合作協(xié)議范本3篇
- 臭氧水療聯(lián)合皮膚科特色護(hù)理治療濕疹患兒的價(jià)值
- 快遞行業(yè)培訓(xùn)計(jì)劃
- xx市科創(chuàng)孵化器項(xiàng)目可行性研究報(bào)告
- 人教版八年級(jí)英語上冊(cè)期末專項(xiàng)復(fù)習(xí)-完形填空和閱讀理解(含答案)
- 一例蛇串瘡患者個(gè)案護(hù)理課件
- 低壓電工理論考試題庫低壓電工考試題
- 駱駝祥子選擇題100道及答案
- 2024年公務(wù)員考試題庫附答案【完整版】
- T-GDWCA 0019-2018 輻照工藝操作規(guī)范
- 司機(jī)考核管理制度
- 出差報(bào)銷單-中英對(duì)照版
- 【學(xué)前教育小學(xué)化成因分析及其對(duì)策10000字(論文)】
- 腕管綜合征課件
- 事業(yè)單位工作人員年度考核登記表(通用模板)
評(píng)論
0/150
提交評(píng)論