
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
![]() |
![]() |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Входные параметры: в dl – 0ffh
Если в буфере есть символ, то его код возвращается в регистре al, а флаг процессора zf устанавливается в 0. Если в буфере нет символа, zf устанавливается в 1, а в al – «мусор». То есть, в отличие от предыдущей функции, здесь не ждут нажатия клавиши (так называемый ввод без ожидания).
ПРИМЕР: Проверка на нажатие ESC (код ESC = 1bh).
Mov dl, 0ffh
Mov ah, 6
Int 21h
jz m1; никакая клавиша не нажата (zf =1)
Cmp al, 0
je m2; нажата функциональная клавиша (в al из int 21h вернулся 0)
Cmp al, 1bh
je m3; нажата Esc
Функция 0ah прерывания int 21h.
Входные параметры: ds:dx - начальный адрес буфера в оперативной памяти
Ввод строки символов с клавиатуры в созданный заранее буфер. Формат буфера: в нулевом байте программист записывает ожидаемую длину строки, в первом байте подпрограмма вернет фактически набранную длину строки, далее будет записаны ASCII – коды набранных символов.
Вводимая строка набирается на клавиатуре и заканчивается нажатием клавиши ENTER. В результате в буфер помещается следующая информация:
байт 0 - ожидаемая длина строки;
байт 1 - фактическая длина строки;
байт 2 и далее - строка, заканчивающаяся ASCII-кодом клавиши ENTER (0dh).
ПРИМЕР: собираемся принять строку, состоящую из двадцати символов.
buf db 20, 0, 21 dup (0); сколько ожидаем, сколько получим, 20 байт под
; ожидаемый прием, плюс байт под код ENTER
.
.
.
Mov ah, 0ah
Mov dx, offset buf
int 21h; здесь висим и ждем ввода информации
Пусть мы ввели 56 и нажали ENTER, тогда будем иметь в буфере (если смотреть в отладчике):
14 02 35 36 0D 00 …. 00
Здесь 14h – это 20 в шестнадцатеричной системе, 02 – число принятых символов, 35h – это ASCII – код цифры 5, 36h – ASCII – код цифры 6.
ПРЕРЫВАНИЯ BIOS ДЛЯ РАБОТЫ С КЛАВИАТУРОЙ
Функция 0 прерывания int 16h
Входные параметры: нет
Чтение символа из буфера клавиатуры. Если клавиша символьная, в al возвращается её ASCII-код, а в ah - её СКЭН - код. Если клавиша функциональная, в al возвращается 0, а в ah -её СКЭН - код. Если в буфере нет символа, подпрограмма ждет нажатия клавиши.
ПРИМЕР: Проверка на нажатие клавиши «стрелкa – вверх». Это функциональная клавиша и её СКЭН - код = 48h.
Mov ah, 0
Int 16h
Cmp al, 0
jne m1; нажата символьная клавиша
Cmp ah, 48h
je m2; нажата «стрелка – вверх»
Примечание: прерывание int 16h имеет аналогичную функцию 10h, предназначенную для работы с расширенной (101 клавиша) клавиатурой.
Функция 1 прерывание int 16h
Входные параметры: нет
Функция похожа на предыдущую, только не ждет нажатия клавиши. Если в буфере нет символов, флаг zf устанавливается в единицу. Внимание, эта функция не очищает буфер при считывании символа (от этого символа). То есть, если мы этой функцией прочтем символ из буфера, то в следующий раз мы прочтем оттуда тот же символ, и так до бесконечности. Решить эту проблему можно, например, так:
Mov ah, 1
Int 16h
jz nott; в буфере нет символа, уходим на метку nott
Mov al, 0
int 16h; читаем символ и очищаем буфер
А почему нельзя было здесь сразу использовать int 16h с функцией 0? Дело в том, что если у нас на экране что-то движется вне зависимости от нажатия клавиш (например, летает шарик), мы не можем останавливаться и ждать нажатия клавиши (на время ожидания шарик пропадет). В приведенном выше фрагменте мы проверяем буфер и, если в нем нет символа, прыгаем на дальнейшее обслуживание экранного движения. И только если в буфере гарантированно есть символ,мы используем int 16h с функцией 0.
Примечание: прерывание int 16h имеет аналогичную функцию 11h, предназначенную для работы с расширенной (101 клавиша) клавиатурой.
ПРЕРЫВАНИЯ DOS ДЛЯ РАБОТЫ С ЭКРАНОМ
Функция 2 прерывания int 21h
Входные параметры: в dl ASCII-код символа.
Выводит заданный символ в текущую позицию курсора. Курсор после вывода смещается на позицию вправо. Коды 7, 8, 0ah и 0dh (эти коды также задаются в dl) на экран не выводятся, а управляют перемещением курсора: 8 - на символ влево, 0ah - на строку вниз, 0dh - на начало строки, 7 – звонок.
ПРИМЕР: Вывести букву А в текущую позицию курсора.
Mov ah, 2
mov dl, 'A'
Int 21h
Функция 9 прерывание INT 21h
Входные параметры: в ds:dx адрес начала строки в оперативной памяти
Выводит, начиная с текущей позицией курсора, строку символов из оперативной памяти. Конец строки задается символом $. Коды 7, 8, 0ah и 0dh являются управляющими.
ПРИМЕР:
stroka db 'Я, ребята, студент',0dh,0ah,'$'
.
.
Mov ah, 9
Mov dx, offset stroka
Int 21h
ПРЕРЫВАНИЯ BIOS ДЛЯ РАБОТЫ С ЭКРАНОМ
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2025 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!