Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

0 При нажатии клавиши Номе (скэн-код 47):

MOV AH,00 ;Выполнить ввод с клавиатуры

INT 16H ;

CMP AL,00 ;Функциональная клавиша?

JNE EXIT1 ; нет -- выйти

CMP AH,47H ;Скэн-код для клавиши Home?

JNE EXIT2 ; нет -- выйти

MOV AH,02 ;

MOV BH,00 ;Установить курсор

MOV DX,00 ; по координатам 0,0

Int 10h ;Вызвать bios

Функциональные клавиши F1 - F10 генерируют скэн-коды от шест.3B до

шест.44. Следующий пример выполняет проверку на функциональную клавишу

F10:

CMP AH,44H ;Клавиша F10?

JE EXIT1 ; Да!

По адресу EXIT1 программа может выполнить любое необходимое действие.

Полный список скэн-кодов приводится в руководстве по языку BASIC.

Техническое описание IBM PC содержит подробное описание всех скэн-кодов, а

также описание использования клавишей Alt, Ctrl и Shift.

ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ

________________________________________________________________

- Монохромный дисплей использует 4К байт памяти, 2К байт на символы и

2К байт на атрибуты для каждого символа.

- Цветной дисплей использует 16К байт памяти и может работать в

цветном или черно-белом (BW) режимах. Возможно использование, как

текстового режима для отображения ASCII-символов, так и графического

режима для любых изображений.

- Байт-атрибут используется и для монохромных дисплеев и для цветных

в текстовом режиме. Атрибут обеспечивает мигание, инвертирование и

выделение яркостью. Для цветных дисплеев в текстовом режиме биты RGB

позволяют выбирать цвета, но не имеют режима подчеркивания.

- Команда BIOS INT 10H обеспечивает полную экранную обработку:

установку режимов, установку положения курсора, прокрутку экрана, чтение с

клавиатуры и вывод на экран.

- Если ваша программа выводит вниз экрана, то не забывай те выполнять

прокрутку прежде, чем курсор выйдет из последней строки.

- При использовании атрибутов для мигания и инвертирования, не

забывайте сбрасывать их в отключенное состояние.

- Для функций по команде INT 10H, выполняющих чтение и вывод на

экран, помните о перемещении курсора.

- Команда BIOS INT 16H обеспечивает прием и распознавание

функциональных клавишей.

- Функциональные клавиши предполагают запрограммированный вызов

некоторых действий.

- Каждая клавиша на клавиатуре имеет конкретный скэн-код,

пронумерованный от 1 (Esc) до 83 (Del), или от шест.01 до шест.53.

- Нажатие символьной клавиши на клавиатуре передает код символа в

регистр AL и скэн-код клавиши в регистр AH.

- Нажатие функциональной клавиши на клавиатуре передает нуль в

регистр AL и скэн-код клавиши в регистр AH.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

________________________________________________________________

9.1. Определите атрибуты экрана для а) мигания с подчеркиванием, б)

нормальной яркости, в) инвертирования с выделением яркостью.

9.2. Составьте процедуры для а) установки режима экрана BW

(черно-белый) на 80 столбцов, б) установки вида курсора, начинающегося на

5 линии сканирования и заканчивающегося на 12 линии, в) прокрутки экрана

на 10 строк, г) вывода десяти мигающих символов штриховки с половиной

точек (шест. B1).

9.3. Напишите скэн-коды для следующих функциональных клавишей: а)

стрелка вверх, б) клавиша F3, в) Home, г) PgUp.

9.4. Используя отладчик DEBUG, проверьте воздействие на содержимое

регистра AX при нажатии клавишей на клавиатуре. Для ввода ассемблерных

команд используйте команду A 100 (Return). Ведите следующие команды:

MOV AH,00

INT 16H

JMP 100

Используя команду U 100,104, дисассемблируйте программу и с помощью G 104

выполните команды MOV и INT. На команде INT выполнение программы

остановиться и система перейдет в ожидание вашего ввода. Для проверки

регистра AH нажмите любую клавишу. Продолжая вводить команду G 104, и,

нажимая различные клавиши, проверьте работу программы. Для выхода введите

команду Q.