Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kratkie_otvety_ekzamen_CP_2011-12.docx
Скачиваний:
19
Добавлен:
14.04.2019
Размер:
132.13 Кб
Скачать
  1. Использование функций Int 21h (08h, 0Ah, 0Bh) для ввода информации.

- INT 2lh, функция 08h. Ввод символа без эха.

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

При вызове: AH=08h. При возврате: АL=байт входных данных.

- INT 2lh, функция OAh. Буферизованный ввод с клавиатуры.

Вводит строку байт из устройства стандартного ввода в буфер пользователя с отображением на устройстве стандартного вывода. Строка должна заканчиваться символом возврата каретки (0Dh). Выполняет обработку <Ctrl>/C.

При вызове: AH=0Ah DS:DX=aдpec буфера .

При возврате: Данные помещены в буфер. Формат буфера: байт 0 - ожидаемая длина строки байт 1 - фактическая длина введенной строки байт 2 и далее - строка, заканчивающаяся 0Dh.

- INT 2lh, функция 0Bh. Проверка состояния ввода.

Проверяет наличие символа от устройства стандартного ввода. Выполняет обработку <Ctrl>/C.

При вызове: AH=0Bh

При возврате: AL=00h если символ не ждет AL=FFh если символ ждет

  1. Использование функций Int 21h (0Ch, 3Fh) для ввода информации.

- INT 2lh, функция 0Ch. Очистка входного буфера и ввод.

Очищает кольцевой буфер клавиатуры и активизирует функцию ввода.

При вызове: AH=0Ch АL="номер требуемой функции ввода.

Допустимы функции 01, 06, 07, 08, 0Ah DS:DX=адpec буфера (если AL=0Ah)

При возврате: АL=байт входных данных (если при вызове AL=0Ah, данные помещаются в буфер)

- INT 2lh, функция Fn 3fH. Читать файл через дескриптор

Все функции DOS ввода с клавитуры допускают перенаправление ввода (из файла, последовательного порта, из вывода другой программы). Если требуется избавиться от этого качества, следует использовать файловую функцию ввода 3Fh и специально выделенный дескриптор.

При вызове: AH = 3fH BX = дескриптор файла DS:DX = адрес буфера для чтения данных CX = число считываемых байт

При возврате: AX = код ошибки если CF установлен или число действительно прочитанных байт

  1. Использование функций Int 16h bios для ввода информации

Команда BIOS INT 16H выполняет специальную операцию, которая в соответствии с кодом в регистре AH обеспечивает следующие три функции ввода с клавиатуры.

- AH=00: Чтение символа. Данная функция помещает в регистр AL oчередной ASCII символ, введенный с клавиатуры, и устанавливает скэн-код в регистре AH. Если на клавиатуре нажата одна из специальных клавишей, например, Номе или F1, то в регистр AL заносится 00. Автоматическое эхо символа на экран по этой функции не происходит.

- AH=01: Определение наличия введенного символа. Данная функция сбрасывает флаг нуля (ZF=0), если имеется символ для чтения с клавиатуры; очередной символ и скэн-код будут помещены в регистры AL и AH соответственно и данный элемент останется в буфере.

- AH=02: Определение текущего состояния клавиатуры. Данная функция возвращает в регистре AL состояние клавиатуры из адреса памяти шест.417:

Бит

7 Состояние вставки активно (Ins)

6 Состояние фиксации верхнего регистра (Caps Lock) переключено

5 Состояние фиксации цифровой клавиатуры (Num Lock) переключено

4 Состояние фиксации прокрутки (Scroll Lock) переключено

3 Нажата комбинация клавишей Alt/Shift

2 Нажата комбинация клавишей Ctrl/Shift

1 Нажата левая клавиша Shift

0 Нажата правая клавиша Shift

- AH= 10h и 11h. Аналогичны 00h и 01h, но они позволяют обрабатывать клавиши 101-клавишной клавиатуры.

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