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

用匯編語言實現多種數制的通用輸入方法

2008-01-01 00:00:00楊繼鵬
智能計算機與應用 2008年1期

摘要:把從鍵盤輸入的二進制、八進制、十進制、十六進制字符數據轉換成計算機能夠識別的二進制數據,給出了各種進制通用的輸入、轉換方法及匯編語言程序段,通過字符串本身可以判斷數制。

關鍵詞:匯編語言 轉換 數制 通用輸入方法

中圖分類號:TP313 文獻標識碼: B 文章編號:1002-2422(2008)01-0059-02

1 編程思路

1.1輸入數值字符串

利用DOS系統功能的10號調用,把需要的數值從鍵盤輸入,此時輸入的是字符串。在利用10號調用時,要注意緩沖區BUF的設定,其格式為:

BUF DB 18

DB ?

DB 18 DUP(0)

1.2判斷數制

字符串輸入后,先判斷輸入數據的進制。通過緩沖區中回車符前面的字符來判斷。這個字符只能是字符串“0123456789BbOoQqHh”中的一個,否則輸入的數據錯誤,程序結束。此字符若為“B”或“b”則是二進制數;若為“O”、“o”、“Q”、“q”中的任一字符,則是八進制;若為“D”、“d”或“0”~“9”之間的任一字符,則是十進制數;若為“H”或“h”則是十六進制數。

1.3字符數據轉換為數值數據

需要把字符串中的每個字符數據轉換為其對應的數值數據。對于二、八、十進制數,只要將其減去30H即可;對于十六進制,因“A”~“F”或“a”~“f”表示數值10-15,若字符在“0”~“9”之間,則減去30H;若在“A”~“F”之間,則減去37H;若在“a”~“f”,之間,則減去57H。

1.4數值數字轉換成二進制數

把得到的數值數字d1d2……dn通過每種數制的基數轉換成二進制數。d1d2……dn可用如下公式計算得到二進制形式:

(…(d1*基數+d2)*基數+…)*基數+dn二、八、十、十六進制的基數分別為2、8、10、16。例如十進制數3472=((3*10+4)*10+7)*10+2。

二、八、十進制的數字符號均在0-9之間,可用同一轉換子程序con-vert實現,只要改變一些傳遞的參數即可。十六進制有“A”~“F”、“a”~“f”數字字符,情況特殊,單獨用一個子程序coil-vert16轉換。

2 匯編語言源程序實例

;num1:不同數制的基數

;low:基數的最小數字符號

;high:基數的最大數字符號

init macro num1,low,high

dee bur+1

mov num,num 1

moY cl,low

moY eh,high

endm

data segment

bur

db 18

db?

db 18 dup(0)

str db‘0123456789BbOoQqDdHh’

count equ S-sir

nuln

dw?

loopnum db?

data

ends

stack segment stack

db 100 dup(0)

stack ends

code segment

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

start: mov ax,data

mov ds,aX

lea dx,buf

mov ah.10

int 21h

mov si,offset buf+2

mov bl,buf+1

mov bh,0

mov a1,-1[bx+si]

mov cx,connt

lea si,str

;判斷輸入的數據是否是所需進制

lop0: cmp al,[si]

jz lab1

inc si

lcop lop0

jmp exit

lab1: cmp al,‘m’

jnz lab2

init 2,‘0’,‘1’

call convert

jmp exit

lab2: cmp a1,‘b’

jnz lab3

init 2,‘0’,‘1’

call convert

jmp exit

lab3: cmp al,‘0’

jnz lab4

init 8,‘0’,‘7’

call convert

jmp exit

lab4: cmp al,‘0’

jnz lab5

init 8,‘0’,‘7’

call convert

jmp exit

lab5: cmp al,‘Q’

jnz lab6

init 8, ‘0’,‘7’

call convert

jmp exit

lab6: cmp al,‘q’

jnz lab7

init 8,‘0’,‘7’

call convert

jmp exit

lab7: cmp al,‘H’

jnz lab8

call convert16

jmp exit

lab8: cmp al,‘h’

jnz lab9

cell convert16

jmp exit

lab9: cmp al,‘0’

jnz lab10

init 10,‘0’,‘9’

call convert

jmp exit

lab10:cmp al,‘d’

jnz lab11

init 10,‘0’,‘9’

call convert

jmp exit

lab11:inc buf+1

init 10,‘0’,‘9’

call conyelt

jmp exit

;二、八、十進制轉換子程序

convert proc

mov si.offset buf+2

mov al,buf+1

mov lcopnurn,al

nov ax,0

mov dx,0

lop10:mul num

jc

exit;

mov bl,[si]

cmp bl,cl

jb exit

cmp b1,ch

ja exit

sub bl,30h

mov bh,0

add ax,bx

inc si

dec lcopnum

jnz lop10

ret

convert endp

;十六進制轉換子程序

convertl6 proc near

mov si.offset buf+2

dec buf+1

mov cl,lbuf+1

mov ax,0

mov dx,0

mov num,16

lop16:mul num

jc exit;

mov bl,[si]

cmp bl,‘0’

jb exit

cmp bl,‘9’

ja con1

sub bl,30h

jmp con3

conl: cmp bl,‘A’

jb exit

cmp bl,‘F’

ja con2

Bub bl,37h

jmp con3

con2: cmp bl,‘a’

jb exit

cmp bl,‘f’

ja exit

sub bl,57h

con3: mov bh,0

add ax,bx

inc si

dec cl

jnz lop16

ret

convert16 endp

exit: mov ah,4ch

int 21h

code

ends

end start

3 結束語

在輸入的所有字符中,程序均支持大小寫。例如可以輸入:101010001011B、6520、28594、6dB4h,分別表示二、八、十、十六進制數。程序經過匯編、連接后,形成可執行文件,也可以稍加修改成為一個子程序。

主站蜘蛛池模板: av色爱 天堂网| 欧美色图第一页| 国产性生大片免费观看性欧美| 热re99久久精品国99热| 怡春院欧美一区二区三区免费| 国产精品视频公开费视频| 香蕉网久久| 国产本道久久一区二区三区| 亚洲青涩在线| 欧美亚洲日韩中文| 亚洲一级毛片在线播放| 日韩午夜片| 亚洲视屏在线观看| 亚洲无限乱码一二三四区| 国产青青操| 国产成人喷潮在线观看| 国产乱子伦视频在线播放| 亚洲第一区在线| 亚洲国产成人在线| 鲁鲁鲁爽爽爽在线视频观看| 欧美成在线视频| 亚洲日本精品一区二区| 精品少妇人妻一区二区| 伊伊人成亚洲综合人网7777| 亚洲精品少妇熟女| 国产丝袜丝视频在线观看| 欧美一区二区啪啪| 欧美区国产区| 99久久精品免费观看国产| 青青青国产视频手机| 无码国产伊人| 成人另类稀缺在线观看| 国产特一级毛片| 国产一区二区人大臿蕉香蕉| 男人天堂亚洲天堂| 欧美日韩专区| 亚洲无码视频喷水| 久久精品国产免费观看频道| 91人人妻人人做人人爽男同| 国产青青草视频| 久久亚洲国产视频| 亚洲国产黄色| 无码av免费不卡在线观看| 制服丝袜在线视频香蕉| 亚洲成A人V欧美综合| 国产一区二区三区在线精品专区| 日韩国产无码一区| 2020亚洲精品无码| 国产成人毛片| 男女精品视频| 国产一区二区色淫影院| 五月天久久婷婷| 狠狠综合久久久久综| 色老二精品视频在线观看| 国产成人91精品免费网址在线| 99在线视频免费观看| 99久久精品免费观看国产| 日韩毛片在线播放| 久久亚洲综合伊人| 日韩免费中文字幕| 久久毛片免费基地| 青青青伊人色综合久久| 久久国产热| 福利在线一区| 国产内射在线观看| 亚洲av无码片一区二区三区| 99久久精品国产麻豆婷婷| 国产精品一区二区在线播放| 毛片免费高清免费| 国产成人三级| 国产亚洲一区二区三区在线| 久久一本精品久久久ー99| 2018日日摸夜夜添狠狠躁| 成人午夜久久| 九九热精品视频在线| 美女内射视频WWW网站午夜| 久久婷婷六月| 亚洲色图综合在线| 国产又色又爽又黄| 91精品啪在线观看国产| 蜜芽一区二区国产精品| 国产精品香蕉在线|