Предыдущая глава ВВОД С КЛАВИАТУРЫ ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ Следующий раздел

В предыдущем разделе были рассмотрены теоретические вопросы, связанные с использованием в программе стека и процедур. Теперь перейдем к практическому рассмотрению этих вопросов в процессе решения важной задачи ввода с клавиатуры шестнадцатеричных чисел. Попутно рассмотрим некоторые новые машинные команды.

8.1. Ввод одной шестнадцатеричной цифры

Для того чтобы ввести с клавиатуры в программу ASСII-символ, можно  воспользоваться командой программного прерывания “int 21h“ с функцией номер 1. Вызванная в результате данной команды подпрограмма DOS помещает ASCII-символ, соответствущий нажатой клавише, в регистр AL.

В в е д и т е  команду “int 21h“ по адресу l00h, поместите номер функции 1 в регистр АH, а затем запустите команду с помощью “G 102“ либо Р. В результате DOS переходит в состояние ожидания нажатия вами клавиши (на  экране вы видите мерцающий курсор). Нажмите любую клавишу, соответствующую шестнадцатеричной цифре (0 – F). Убедитесь, что в результате регистр AL содержит соответствующий код ASCII.

При преобразовании ASCII-символа, который содержится в регистре AL, в шестнадцатеричную цифру решается задача, обратная той, которую мы решали при выводе цифры на экран. На рис.30 приведена блок-схема программы, которая  выполняет ввод цифры с клавиатуры в регистр AL.

З а п и ш и т е текст программы ввода шестнадцатеричной цифры и поместите  его в память. Для программирования условия можно использовать не только уже знакомую нам команду условного перехода ja (перейти, если больше), но и обратную ей команду jbe (перейти, если меньше или равно). Обе команды используются после сравнения беззнаковых величин, каковыми коды ASCII и являются.

Так как результат данной программы содержится в регистре AL, то этот регистр необходимо проанализировать прежде, чем исполнится команда “int 20“ (Debug восстанавливает регистры после этой команды). Поэтому для запуска программы используйте команду DebugG d”, где d – смещение  команды “int  20.

 

 

Рис. 30.  Алгоритм ввода шестнадцатеричной цифры

 

В ы п о л н и т е программу несколько раз, нажимая не только клавиши, соответствующие шестнадцатеричным цифрам, но и другие клавиши. При этом убедитесь, что программа реагирует на неправильное нажатие клавиши точно так же, как и на правильное. В дальнейшем этот недостаток будет устранен.

 


Предыдущая глава В начало Следующий раздел