现在的位置: 首页 > 综合 > 正文

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

2018年04月08日 ⁄ 综合 ⁄ 共 1177字 ⁄ 字号 评论关闭
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
【上篇】
【下篇】

抱歉!评论已关闭.