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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值