Just a quick code like putting your keyboard where your brain is. There should be another way of doing this. I hate this code.
start:
xor al, al
xor bl, bl
xor cl, cl
mov dl, 4 ; use dl as counter
input:
mov ah, 00
int 16h
cmp ah, 1ch
je exit
cmp al, '0'
jb input
cmp al, '1'
ja input
convert:
mov cl, dl
dec cl ; dl - 1
sub al, 30h ; get original value
shl al, cl ; place in the appropriate bit position
or bl, al ; save in bl
dec dl ; prepare for the next bit
jnz input ; must be 4 bits
cmp bl, 9
ja letter
jbe number
letter:
add bl, 37h ; because 'A' - 37h is 0Ah
jmp here
number:
add bl, 30h ; because '0' - 30h is 00h
here:
call display
jmp start
display:
mov ah, 02h
mov dl, bl
int 21h
ret
exit:
int 20h
Try this out, get the assembler here.
No comments:
Post a Comment