您的位置:首页 > 其它

如何将十六进制数转换为十进制数

2005-10-07 09:52 148 查看
code segment
assume cs:code
hexidec proc far
push ds
sub ax,ax
push ax
start: call hexibin
cmp al,1bh
jz exit
call crlf
call binidec
call crlf
jmp start
exit: ret
hexidec endp
hexibin proc near
mov bx,0
inhex: mov ah,1
int 21h
cmp al,1bh
jz hexend
sub al,30h
jl hexend
cmp al,10h
jl add_to
sub al,7
cmp al,10
jl hexend
cmp al,16
jl add_to
sub al,20h
cmp al,10
jl hexend
cmp al,16
jge hexend
add_to: mov cl,4
shl bx,cl
mov ah,0
add bx,ax
jmp inhex
hexend: ret
hexibin endp
binidec proc near
mov cx,10000
call dec_div
mov cx,1000
call dec_div
mov cx,100
call dec_div
mov cx,10
call dec_div
mov cx,1
call dec_div
ret
binidec endp
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp
crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp
code ends
end hexidec
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: