ВУЗ:
Составители:
принудительным заполнением области ввода кодом символа пробел (20Н) до очередного ввода
текста, либо после введенного текста, но только ту ее часть, которая следует за кодом 0DH.
Расширенные версии DOS, т. е. версии DOS 3.3 и выше, позволяют существенно увеличить
возможности обслуживания клавиатуры. Расширенные возможности включают файловый номер,
который заносится в регистр ВХ микропроцессора и для ввода с клавиатуры имеет значение ВХ =
00Н. Кроме того, изменяется функция прямого ввода в регистре АН с 0АН на 3FH, а максимальное
количество вводимых символов заносится в регистр СХ.
В расширенной версии DOS, команда INT ожидает, пока пользователь не введет символы с
клавиатуры, но не проверяет, превышает ли число введенных символов значение регистра СХ.
Нажатие клавиши ENTER указывает на завершение ввода. В этом случае после введенного текста,
т. е. после кодов текста, следует код символа возврата каретки 0DH и код символа возврата строки
0АН. Вследствие этой особенности расширенной версии DOS, максимальное количество символов
и размер области ввода должны предусматривать место для двух дополнительных символов ODH
и OAH.
Если вводить текст, который превышает содержимое регистра СХ, то будут приниматься
все без исключения символы, а фактическая длина введенной последовательности запишется в
регистр АХ. Однако в область ввода запишутся только первые СХ кодов символов. В результате
следующая команда INT , будет принимать данные не с клавиатуры, а из собственного
внутреннего буфера, поскольку в нем еще сохранились предыдущие данные. Таким образом,
содержимое регистра АХ позволяет определить количество введенных с клавиатуры символов и
установить факт ввода законченного текста.
Прерывание INT 21H DOS опирается на команду BIOS INT 16H, которая выполняет одну
из трех основных функций ввода с клавиатуры. Номер функции ввода определяется содержимым
регистра АН микропроцессора в момент обращения к BIOS.
1. Чтение символа: АН = 00Н. При выполнении данной функции ASCII-код нажатой
символьной клавиши помещается в регистр AL, а ее скэн-код в регистр АН. Если на клавиатуре
нажата одна из функциональных клавиш, то в регистр АL заносится код 00Н. Вывод символа на
экран монитора в этом случае не происходит.
2. Определение наличия введенного символа: АН = 01Н. Данная функция определяет
наличие символа для чтения с клавиатуры, т. е. очередной код символа и скэн-код помещен в
регистр АХ.
3. Определение текущего состояния клавиатуры: АН = 02Н. При выполнении этой
функции BIOS возвращает в регистр АН текущее состояние клавиатуры из ячейки памяти 417Н. В
этом случае биты регистра состояния АН имеют следующее функциональное назначение:
Нажата правая клавиша Shift
Состояние вставки активно (INS)
Состояние фиксации верхнего
Нажата левая клавиша Shift
регистра (Caps Lock) включено
Состояние фиксации цифровой
клавиатуры (Num Lock) включено
Состояние фиксации прокрутки
(Scroll Lock) включено
Нажата комбинация клавиш Ctrl/Shift
Нажата комбинация клавиш Alt/Shift
76543210
Биты регистра АН
Рис. 2.4. Функциональное назначение битов регистра состояния АН
Вернемся к расширенной версии DOS по прерыванию INT 21H. для функции 0АН. В
данной версии выполнение этой функции имеет более мощные средства по отношению к базовой
версии DOS и их выбор для использования в прикладных программах является более
предпочтительным. В этом случае возможна дополнительная реализация одной из следующих
функций, в зависимости от содержимого регистра АН:
принудительным заполнением области ввода кодом символа пробел (20Н) до очередного ввода
текста, либо после введенного текста, но только ту ее часть, которая следует за кодом 0DH.
Расширенные версии DOS, т. е. версии DOS 3.3 и выше, позволяют существенно увеличить
возможности обслуживания клавиатуры. Расширенные возможности включают файловый номер,
который заносится в регистр ВХ микропроцессора и для ввода с клавиатуры имеет значение ВХ =
00Н. Кроме того, изменяется функция прямого ввода в регистре АН с 0АН на 3FH, а максимальное
количество вводимых символов заносится в регистр СХ.
В расширенной версии DOS, команда INT ожидает, пока пользователь не введет символы с
клавиатуры, но не проверяет, превышает ли число введенных символов значение регистра СХ.
Нажатие клавиши ENTER указывает на завершение ввода. В этом случае после введенного текста,
т. е. после кодов текста, следует код символа возврата каретки 0DH и код символа возврата строки
0АН. Вследствие этой особенности расширенной версии DOS, максимальное количество символов
и размер области ввода должны предусматривать место для двух дополнительных символов ODH
и OAH.
Если вводить текст, который превышает содержимое регистра СХ, то будут приниматься
все без исключения символы, а фактическая длина введенной последовательности запишется в
регистр АХ. Однако в область ввода запишутся только первые СХ кодов символов. В результате
следующая команда INT , будет принимать данные не с клавиатуры, а из собственного
внутреннего буфера, поскольку в нем еще сохранились предыдущие данные. Таким образом,
содержимое регистра АХ позволяет определить количество введенных с клавиатуры символов и
установить факт ввода законченного текста.
Прерывание INT 21H DOS опирается на команду BIOS INT 16H, которая выполняет одну
из трех основных функций ввода с клавиатуры. Номер функции ввода определяется содержимым
регистра АН микропроцессора в момент обращения к BIOS.
1. Чтение символа: АН = 00Н. При выполнении данной функции ASCII-код нажатой
символьной клавиши помещается в регистр AL, а ее скэн-код в регистр АН. Если на клавиатуре
нажата одна из функциональных клавиш, то в регистр АL заносится код 00Н. Вывод символа на
экран монитора в этом случае не происходит.
2. Определение наличия введенного символа: АН = 01Н. Данная функция определяет
наличие символа для чтения с клавиатуры, т. е. очередной код символа и скэн-код помещен в
регистр АХ.
3. Определение текущего состояния клавиатуры: АН = 02Н. При выполнении этой
функции BIOS возвращает в регистр АН текущее состояние клавиатуры из ячейки памяти 417Н. В
этом случае биты регистра состояния АН имеют следующее функциональное назначение:
7 6 5 4 3 2 1 0
Биты регистра АН
Состояние вставки активно (INS)
Состояние фиксации верхнего
регистра (Caps Lock) включено
Нажата правая клавиша Shift
Состояние фиксации цифровой
Нажата левая клавиша Shift
клавиатуры (Num Lock) включено
Нажата комбинация клавиш Ctrl/Shift
Состояние фиксации прокрутки
(Scroll Lock) включено Нажата комбинация клавиш Alt/Shift
Рис. 2.4. Функциональное назначение битов регистра состояния АН
Вернемся к расширенной версии DOS по прерыванию INT 21H. для функции 0АН. В
данной версии выполнение этой функции имеет более мощные средства по отношению к базовой
версии DOS и их выбор для использования в прикладных программах является более
предпочтительным. В этом случае возможна дополнительная реализация одной из следующих
функций, в зависимости от содержимого регистра АН:
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
