Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
13_CРС_СП_МУ.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
379.9 Кб
Скачать

Функции для работы с клавиатурой.

Эти функции достаточно просты; они считывают либо отдельные набираемые на клавиатуре символы в регистр AL, либо последовательность символов (строку) в память. Если только вам не приходится иметь дело с некото­рыми необычными комбинациями клавиш, то вы найдете эти функции удоб­ными для применения.

В диалоговых программах от пользователя нередко требуется дать ответ на приглашение к вводу или сделать выбор из меню вводом одной буквы или цифры. Пусть, например, ваша программа изображает сообщение, в кот­ором от пользователя требуется нажать клавишу либо с буквой Д , либо с буквой К (для продолжения или прекращения работы). Ввод Д заставляет программу перейти к группе команд, помеченных меткой YES, а ввод Н - к команде с меткой N0. При нажатии любой другой клавиши программа снова должна ожидать ввода либо буквы Д, либо буквы Н. Эту задачу выполняет следующий фрагмент:

GET KEY: MOV АН, 1 ;считать символ INT 21H

СМР AL, "Д" ;0н равен Д?

JE YES ;если да, то перейти к метке YES СМР AL, "Н" ;он равен Н?

JE N0 ;если да, то перейти к метке N0 JNE GET KEY в противном случае ждать ввода Д или Н

Данный фрагмент распознает только прописные буквы Д и Н, но пользователи склонны набирать символы не нажимая клавишу верхнего регистра . Чтобы программа воспринимала ответы, набранные строчными буквами, добавьте дополнительные команды сравнения СМР AL, "д" и СМР АL, "н".

Вызовы функции, инициируемые прерыванием типа 21

Рег-р

АH

Операция

Допол. входные регистры

Выходные регистры

1

Ожидание набора символа на клавиатуре и последующее его изображение на экране

Не используются

(AL) = символ

6

Чтение символа с клавиатуры

(DL) = FF

(AL) = очеред символ, если буфер клавиатуры не пуст

7

Ожидание набора символа на клавиатуре без последующего его отображения на экране

Не используются

(AL) = символ

8

Ожидание набора символа на клавиатуре без последующего его отображения на экране с проверкой на расширение.

Не используются

(AL) = символ

А

Чтение клавиатурной строки в буфер

(DS : DX) = адрес буфера

1-й байт размер буфера

Второй байт буфера - число фактически прочитанных символов

B

Чтение состояния клавиатуры

Не используются

AL = FF, если клавиатур-

ная строка пуста, AL = 0,

если хоть 1 символ

С

Опустошение буфера клавиатуры и вызов функции для работы с клавиатурой

(AL) = номер функции для работы с клавиатурой

В соответствии с вызываемой функцией

В программе-тренажере возможно использование только 2 функций прерывания типа 21: АH=7 и АН=8.

КОНТРОЛЬНЫЕ ВОПРОСЫ :

1. Каково назначение BIOS?

2. Дайте определение команде прерывания.

3. Перечислите все действия компьютера, получившего команду прерывания.

4. Какие функции работы с клавиатурой реализованы в прерывании типа 21?

5. Назовите типы прерываний системы BIOS.

Задание к СРС:

1. Подготовиться к ответу на контрольные вопросы.

2. Написать программу по заданию, полученному у преподавателя с использованием прерывания типа 21 для работы с клавиатурой.

СРС N 6

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]