.MODEL SMALL
.386
.DATA
msg1 DB "Please enter a number : $"
msg2 DB 13, 10, "Log2 = $"
msg3 DB 13, 10, "Press any key to continue.", 13, 10, "$"
numMax DB 6
numLen DB ?
num DB 6 DUP(?)
numDec DW ?
.CODE
.STARTUP
MOV AH, 09h
LEA DX, msg1
INT 21h
MOV AH, 0Ah
LEA DX, numMax
INT 21h
MOVZX CX, numLen
LEA SI, num
MOV BX, 0
loop1:
MOV AX, 10
MUL BX
MOV BL, [SI]
INC SI
SUB BL, '0'
MOV BH, 0
ADD BX, AX
LOOP loop1
MOV numDec, BX
FLD1
FILD numDec
FYL2X
MOV numDec, 100
FIMUL numDec
FISTP numDec
MOV AH, 09h
LEA DX, msg2
INT 21h
MOV CX, 0
MOV AX, numDec
MOV BX, 10
loop2:
MOV DX, 0
DIV BX
ADD DL, '0'
PUSH DX
INC CX
CMP CX, 2
JNE next1
MOV DL, "."
PUSH DX
INC CX
next1:
CMP AX, 0
JNE loop2
loop3:
POP DX
MOV AH, 02h
INT 21h
LOOP loop3
MOV AH, 09h
LEA DX, msg3
INT 21h
MOV AH, 08h
INT 21h
.EXIT
.STACK
END