Консультация № 144190
17.09.2008, 15:35
0.00 руб.
0 1 1
Подскажите пожайлуста с помощью чего можно переводить символы в цифры. Например: мы набираем на клавиатуре 2 и 3. Они у нас в символьном виде, а нужно преоброзовать в численный вид. Заранее спасибо

Обсуждение

давно
Старший Модератор
31795
6196
17.09.2008, 15:49
общий
это ответ
Здравствуйте, Andrey Shamraev!

Для первода символов в цифры десятичной системы достаточно применить к ним команду AND AL,0fh или SUB AL,30h .
Если вводить посимвольно число, то предлагаю воспользоваться такой п/программкой из приложения.
Удачи!

Приложение:
;в регистре DI будет искомое число на выходе из процедуры
;сейчас сбрасываем число
EnterNumber: xor di,di
;вводим без эхо, для реакции только на цифровые клавиши и "ВВОД"
NextNumber: mov ah,07
int 21h
;если нажата клавиша "ВВОД" заканчиваем ввод одного числа
cmp al,13
jz EnterStop
;если код нажатой клавиши меньше кода клавиши "0", то это не цифра
cmp al,'0'
jb NextNumber
;если код нажатой клавиши больше кода клавиши "9", то это не цифра
cmp al,'9'
ja NextNumber
;была нажата цифровая клавиша, выводим её символьное представление на экран
push ax
int 29h
pop ax
;получаем введенную цифру
and ax,0fh
;меняем местами регистры АХ и DI, т.е. последнюю введенную цифру и ранее введеное число
xchg ax,di
;умножаем ранее введеное число на 10
mov bx,10
xor dx,dx
mul bx
;теперь в DI введеное число
add di,ax
jmp short NextNumber
;была нажата клаввиша "ВВОД",
EnterStop:
;возврат из процедуры ввода числа
ret
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа