Не могу сделать перевод 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-ричной системе.
Дайте совет.