Не могу сделать перевод 10-чного числа введённого с клавиатуры из ASCII строки в число.
ASCIIDecToBin proc
	push ebp
	mov ebp,esp
	push esi
	push ecx
	mov esi,[ebp+8]
	xor eax,eax
	xor ecx,ecx
m2:  
	mov cl, byte ptr [esi]
	cmp cl, 0Dh
	je exit
	cmp cl, 39h
	jbe m1
	invoke StdOut,$CTA0("First number must be in range 1...255")
	invoke ExitProcess,0
m1:			
	sub cl,30h
	or al,cl
	shl eax,4
	inc esi
	jmp m2
exit:
	shr eax,4
	pop ecx
	pop esi
	pop ebp
ex:	
	ret 4
	ASCIIDecToBin EndP
Входящие параметры : буфер со строкой
Каждый байт с кодом символа перевожу в число. Далее перемещаю его в первые 4 бита ЕАХ.
Сдвигаю ЕАХ на 4 бита влево для ноговго разряда. 
Убираю лишний сдвиг после последнего розряда.
Только потом понял что полученное распазнаётся в 16-ричной системе.
Дайте совет.