.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