Friday, 19 September 2014

Convert Hexa Decimal to Binary




.model small
printmsg macro msg
        push ax
        push dx
        lea dx,msg
        mov ah,09h
        int 21h
        pop dx
        pop ax
endm
.data
        msg1 db 0ah,0dh,"Enter Hexa (use caps lock and max 4 digit):$"
        msg2 db 0ah,0dh,"Binary is:$"
        msg3 db 0ah,0dh,"Invalid$"
        cnt dw 0
        num dw 0
        a dw 0
.code
        mov ax,@data
        mov ds,ax
        printmsg msg1
        xor bx,bx
     l5:mov ah,01h
        int 21h
        cmp al,0dh
        je l6
        cmp al,30h
        jb l2
        cmp al,39h
        ja l3
        sub al,30h
        jmp l4
      l3:cmp al,46h
        ja l2
        cmp al,41h
        jb l2
        sub al,37h
     l4:shl bx,01
        shl bx,01
        shl bx,01
        shl bx,01
        mov cx,ax
        and cx,00ffh
        add bx,cx
        jmp l5
    l2: printmsg msg3
        jmp ext
    l6: mov cx,10h
     l7:mov ax,bx
        and ax,0001
        shr bx,01
        add al,30h
        push ax
        inc cnt
        loop l7
        mov cx,cnt
        printmsg msg2
     l8:pop ax
        mov dl,al
        mov ah,02h
        int 21h
        loop l8
    ext:mov ah,4ch
        int 21h
end




                 

No comments:

Post a Comment