Проверка нажатия клавиши в ассемблере

Когда я изучал ассемблер, было любопытно всё. И загадочно. Сейчас это уже не загадочно. Но до сих пор любопытно. Поэтому я продолжаю писать иногда статьи по ассемблеру, несмотря на то, что с практической точки зрения это уже мало кому надо. Сегодня пример того, как можно прочитать и проверить нажатие клавиши.

Для этих целей имеется немало функций как операционной системы, так и BIOS. Но мы сегодня используем первую попавшуюся - функцию DOS 07h. И сразу пример:

Когда я изучал ассемблер, было любопытно всё. И загадочно. Сейчас это уже не загадочно. Но до сих пор любопытно.

Функция DOS 07h читает нажатую клавишу и записывает её код в регистр AL. Поскольку я сказал “код”, то нетрудно догадаться, что вместо 'Y' можно написать 59h. Однако, раз уж ассемблер позволяет писать символы вместо чисел, то почему бы этим не воспользоваться. Так всё таки понятнее.

Затем мы сравниваем код прочитанной клавиши, и если он соответствует нашим ожиданиям (была нажата клавиша с буквой 'Y' с шифтом - то есть это большая буква, а не маленькая), то мы переходим к метке YesKey.

Ну и в зависимости от того, перейдём мы к метке YesKey или нет, будет выведена надпись YES или NOT YES. Таким образом мы прочитали клавишу, и проверили её код. Ну а что с этим делать дальше, зависит от задач.

Если вам не очень понятно, как используется процедура Write, то подробнее узнать об этом можно здесь.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.