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

匯編語言中關于數據輸出的程序實現

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

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

關鍵詞:匯編語言 二進制 十進制 十六進制 顯示

引言

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

一、編程思路與算法

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

1.編程思路:

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

2.程序實現:

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; 無符號數擴展

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

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

結語

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

參考文獻:

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

主站蜘蛛池模板: 日韩无码真实干出血视频| 亚洲男人的天堂久久精品| 2022精品国偷自产免费观看| 久久网欧美| 色九九视频| 亚洲色精品国产一区二区三区| 最新国语自产精品视频在| 无码中文字幕加勒比高清| 久久一色本道亚洲| 国产亚洲欧美在线人成aaaa| 亚洲成人精品在线| 欧美啪啪一区| 91久久偷偷做嫩草影院| 欧美区一区二区三| 国产成人永久免费视频| 亚洲黄网视频| 亚洲精品无码在线播放网站| 日韩美女福利视频| 欧美精品亚洲二区| 在线免费看片a| 国产主播在线一区| 国产精品无码AV片在线观看播放| 国产亚洲精品yxsp| www.youjizz.com久久| 四虎精品免费久久| 久久精品国产亚洲麻豆| 91福利在线观看视频| 十八禁美女裸体网站| 91精品国产福利| 欧美综合在线观看| 视频二区欧美| 亚洲国产日韩在线成人蜜芽| 欧美一级专区免费大片| 青青操视频免费观看| 亚洲区一区| 国产成人高清在线精品| 亚洲第一国产综合| 亚洲一区二区三区在线视频| 中国黄色一级视频| 免费一极毛片| 亚洲精品国产精品乱码不卞| 在线无码九区| 无码内射中文字幕岛国片| www.亚洲一区二区三区| 久久午夜夜伦鲁鲁片无码免费| 日韩毛片免费观看| 国产00高中生在线播放| 国产精品亚欧美一区二区三区| 永久成人无码激情视频免费| 亚洲男女天堂| 啪啪免费视频一区二区| 99草精品视频| 自拍欧美亚洲| 亚洲男人在线| 亚洲综合香蕉| 丁香五月亚洲综合在线 | 亚洲欧美人成人让影院| 亚洲欧美另类久久久精品播放的| 日韩精品毛片| 亚洲国产在一区二区三区| 青青青视频免费一区二区| 伊大人香蕉久久网欧美| 最新国产你懂的在线网址| 波多野结衣视频网站| 欧美色视频网站| 亚洲h视频在线| 国产欧美日韩精品第二区| 成人福利在线视频免费观看| 亚洲福利片无码最新在线播放| 午夜在线不卡| 精品久久国产综合精麻豆| 沈阳少妇高潮在线| 在线中文字幕日韩| 在线播放国产一区| 九九热精品视频在线| 色屁屁一区二区三区视频国产| jijzzizz老师出水喷水喷出| 国产91色在线| 亚洲美女久久| 台湾AV国片精品女同性| 一本久道热中字伊人| 亚洲日本中文字幕乱码中文 |