You are on page 1of 2

.

MODEL small
.stack 10h
.data

PROMPT1 db "TYPE A BINARY NUMBER, UP TO 16 DIGITS: $"


PROMPT2 db "IN HEX IT IS $"
newline db 0DH, 0AH, '$'

count db ?

.code

main proc

mov ax, @data


mov ds, ax

mov ah, 09h


mov dx, OFFSET PROMPT1
int 21h

Restart:
;USE BX for inputs
MOV CX, 1
MOV BX, 0
mov ah, 01
AGAIN: INT 21h
cmp al, 0DH
JE NEXT
SUB AL, 30H
SHL BX, 1
OR BL, AL
;counting 16 inputs
INC CX
CMP CX, 16
JB AGAIN
NEXT: MOV CL, 4

mov ah, 09h


mov dx, OFFSET PROMPT2
int 21h

;USE BX for output


MOV AH,02H
AGAIN2: MOV DL, BH
SHR DL, CL
CMP DL, 9
JBE DIGIT
LETTER: ADD DL, 37H
JMP DISPLAY
DIGIT: ADD DL, 30H
DISPLAY: INT 21H
INC count
SHL BX, CL
CMP count, 4
JB AGAIN2
REMAIN:

MOV AH, 4CH


INT 21H

MAIN ENDP
END MAIN

You might also like