999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

匯編語言中關(guān)于數(shù)據(jù)輸出的程序?qū)崿F(xiàn)

2007-12-31 00:00:00
考試周刊 2007年48期

摘 要:在用匯編語言編程時, 將結(jié)果數(shù)據(jù)按不同的數(shù)制形式顯示出來是一個難點。計算機(jī)中的機(jī)器數(shù)是按二進(jìn)制形式進(jìn)行處理和存儲的,如何將它們進(jìn)行轉(zhuǎn)換,分別按二進(jìn)制、十進(jìn)制和十六進(jìn)制等形式顯示在顯示器上,文章給出了具體的實現(xiàn)方法。

關(guān)鍵詞:匯編語言 二進(jìn)制 十進(jìn)制 十六進(jìn)制 顯示

引言

數(shù)字計算機(jī)中的數(shù)據(jù)存儲方式是由“0”和“1”組成的二進(jìn)制碼串,根據(jù)不同的需要,我們往往要求數(shù)據(jù)的顯示形式不一樣,如二進(jìn)制、十進(jìn)制、十六進(jìn)制、八進(jìn)制等等。在高級程序設(shè)計語言中,最后的處理結(jié)果都能在顯示器上顯示出來。然而,匯編語言卻沒有相應(yīng)的輸出命令,而是需要使用DOS功能調(diào)用。對每個數(shù)的顯示,一般都需要逐位地轉(zhuǎn)換成ASCII碼,再使用DOS功能調(diào)用完成在顯示器上的顯示。使用DOS系統(tǒng)功能調(diào)用的一般步驟為:把調(diào)用號放入AH中,設(shè)置入口參數(shù),然后執(zhí)行INT 21H指令,最后分析處理出口參數(shù)。下面我們探討一下如何將計算機(jī)中的數(shù)據(jù)轉(zhuǎn)換成所需要的進(jìn)制并在顯示器上顯示。

一、編程思路與算法

假設(shè)在BX寄存器中,存放了一個無符號整數(shù),要求將該數(shù)以十進(jìn)制的形式在屏幕上顯示。

1.編程思路:

在內(nèi)存中分配一緩沖區(qū)。用來存放十進(jìn)制的每一位。在計算機(jī)中所有的數(shù)都是以二進(jìn)制的形式存放的。首先要完成二進(jìn)制到十進(jìn)制的轉(zhuǎn)換,再將每一位轉(zhuǎn)換成ASCII碼。一般采用“除10取余”法。第一步:將待轉(zhuǎn)換的數(shù)除以10,得到第一個商和余數(shù),再在該余數(shù)上加上30H將該余數(shù)轉(zhuǎn)換成ASCII碼,此數(shù)就是所求的十進(jìn)制數(shù)的個位;第二步:用剛才的第一個商除以10,得到第二個商和余數(shù),再在該余數(shù)上加上30H將該余數(shù)轉(zhuǎn)換成ASCII碼,此第二個余數(shù)就是所求的十進(jìn)制數(shù)的十位;……重復(fù)這一過程直到商為0。最后送顯示器輸出即可。該題中我們采用DOS系統(tǒng)功能調(diào)用的9號功能調(diào)用來顯示輸出字符串,入口參數(shù)DS:DX置字符串首址,字符串以‘S’結(jié)束。

2.程序?qū)崿F(xiàn):

Stack segment stack ‘stack’

Dw 32 dup(?)

Stack ends

Data segment

OBUF DB 6 DUP(?)

Data ends

Code segment

Start proc far

Assume ss:stack,cs:code,ds:data

Mov ax,data

Mov ds,ax

MOV SI.,OFFSETOBUF+5

MOV BYTE PTR[SI],‘S’; OBUF的最后一位置“S”

DEC SI

MOV CX,10

MOV AX,BX

AGAIN: MOV DX,0; 無符號數(shù)擴(kuò)展

DIV CX

ADD DL,30H

MOV[SI],DL

DEC SI

CMP AX,0

JNZ AGAIN

INC SI

MOV DX,SI; 首地址送DX

MOV AH,9

INT 21H; 顯示器輸出字符串

Ret

Start endp

Code ends

End start

以上介紹了在匯編語言程序設(shè)計中,如何將數(shù)按十進(jìn)制的形式顯示出來的方法。當(dāng)然,也可以以不同的進(jìn)制輸出。例:二進(jìn)制輸出,只需要對二進(jìn)制的每一位加上30H,再輸出即可。按十六進(jìn)制輸出時,顯示時只需將原二進(jìn)制數(shù)每4位分成一組,按組求對應(yīng)的ASCII碼送顯示器即可。ASCII碼與十六進(jìn)制數(shù)字的對應(yīng)關(guān)系為:30H—39H對應(yīng)數(shù)字0—9,41H—46H對應(yīng)數(shù)字A—F,從數(shù)字9到A,ASCII碼間隔了7H,這一點在轉(zhuǎn)換時要特別注意。實際編程中,我們對先BX中的數(shù)每次循環(huán)左移一組(4位二進(jìn)制),然后屏蔽掉當(dāng)前高12位,對當(dāng)前余下的4位(即1位十六進(jìn)制數(shù))求其ASCII碼,要判斷它是0—9還是A—F,是前者則加30H得對應(yīng)的ASCII碼,后者則要加37H才行。以上步驟重復(fù)4次,最后送顯示器輸出,就可以完成BX中數(shù)以4位十六進(jìn)制的形式顯示出來。

結(jié)語

以上介紹了在匯編語言程序設(shè)計中,根據(jù)不同的需要,如何把機(jī)器數(shù)按不同數(shù)制形式顯示出來的方法。各種方法中,主要是數(shù)據(jù)轉(zhuǎn)換的方法不同,顯示的功能調(diào)用指令是一樣的,當(dāng)然還可以用其他(比如2號功能調(diào)用)方法調(diào)用顯示功能,這里不再詳細(xì)介紹。

參考文獻(xiàn):

[1]沈美明,溫冬嬋.IBM-PC匯編語言程序設(shè)計[M].北京:清華大學(xué)出版社,1991.

主站蜘蛛池模板: 欧美精品成人| 国产欧美日韩在线一区| 免费无遮挡AV| 美女国产在线| 无码久看视频| 国产成人凹凸视频在线| 久久影院一区二区h| 国产青榴视频在线观看网站| 91尤物国产尤物福利在线| 亚洲精品少妇熟女| 亚洲无码高清视频在线观看| 国产在线专区| 亚洲欧洲日本在线| 亚洲Av激情网五月天| 狠狠五月天中文字幕| 久久久久国产一区二区| 亚洲首页国产精品丝袜| 一本一道波多野结衣一区二区| 中文字幕色站| 五月婷婷激情四射| 狂欢视频在线观看不卡| 看国产一级毛片| 九九九精品成人免费视频7| 国产成人麻豆精品| 嫩草国产在线| 日韩a级毛片| 亚洲福利视频一区二区| 免费一级α片在线观看| 日韩免费视频播播| 香蕉蕉亚亚洲aav综合| 久久精品国产亚洲麻豆| 91口爆吞精国产对白第三集| 成人一区专区在线观看| 日韩精品久久无码中文字幕色欲| 日本欧美午夜| 亚洲精品大秀视频| 欧美午夜久久| 成人国产精品2021| 亚洲天堂2014| 国产福利免费视频| 婷婷色狠狠干| 亚洲国产日韩视频观看| 亚洲欧美另类色图| 国产清纯在线一区二区WWW| 国产免费精彩视频| 国产成人凹凸视频在线| 亚洲精品午夜天堂网页| www.国产福利| 国产不卡网| 日本国产精品一区久久久| 天堂在线www网亚洲| 亚洲h视频在线| 国产精品成人免费视频99| 欧美亚洲国产视频| 亚洲欧美极品| 国产丰满成熟女性性满足视频| 久久国产香蕉| 国产福利小视频高清在线观看| 亚亚洲乱码一二三四区| 狠狠亚洲五月天| 欧美视频在线观看第一页| 久久精品人人做人人爽电影蜜月| 久久五月视频| 丰满人妻中出白浆| 99视频在线免费观看| 久久先锋资源| 精品超清无码视频在线观看| 精品91在线| 国产97公开成人免费视频| 国产成人调教在线视频| 国产91精品久久| 中文字幕人成人乱码亚洲电影| 蜜桃视频一区二区| 中文字幕在线观看日本| 国产高清在线丝袜精品一区| 精品色综合| 国产h视频在线观看视频| 婷婷六月在线| 蜜桃视频一区二区| 青青操国产| 国产欧美网站| 欧美精品啪啪|