КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Обработка прерываний в MS DOS
Вывод на экран в консольном приложении. Прямая работа с видео памятью. Функции видео BIOS. Видео страницы (дисплейные страницы). В текстовом режиме размер видеобуфера > размера 1 экрана. 80х25 4кбайта 4 страницы. 40х25 2кбайта 8 страниц. Поэтому в функциях видеобиос надо указать на какой странице находится выход.
Представить ч/з прерывание INT 10h. AH=0 (№ фун-ии) установить видео режим. В AL=№ режима. 0,1-16 цвет.текст 40х25. 2,3-16 цвет.текст 80х25. В современных ПК поддерживается текстовый режимы VESA BIOS Extention, то АН=4FH, AL=02h. № видеорежима задается в рг ВХ. ВХ=№ режима. 108h 80x60. 109h 132x25. 10Ah 132x43. 10Bh 132x50. 10Ch 132x60. Другие полезные функции: АН=2-установить позицию курсора. ВН-страница DН-строка. ВL-столбец. АН=3 – получить позицию курсора. АН=5 – установить активную видеостраницу, т.е. ту страницу, которая отображается на экране. AL=номер страницы. Вывести символ в текущую позицию курсора: 1. AH=09h – с атрибутом=BL. 2. AH=0Ah – без атрибута (BL не найден). 3. AH=0Eh – в режиме телетайпа. AL=символ. BH=страница. В рг СХ для 1,2 записывается кол-во повторений символа. Для 1,2 курсор не перемещается! AH=0Fh – получить видео режим. Выход: AL-видеорежим. ВН-актив.видео страница. АН-число столбцов символов на экране. AH=11h – загрузка шрифтов. AL=00h.
Для текстов видео режимов, кроме 7, видео память распологается в области начиная с адреса 0В800h:0000h. Поэтому в MS DOS любая программа может выводить на экран простой командой пересылки данных не прибегая к функциям DOS и BIOS. На ПК обычно бывает 0 видеостран., т.е. сегмент В800 соответствует левой верхней точке экрана. Номерование столбцов идет слева направо, сверху вниз.
WriteConsoleA – вывод начинается с текущей позиции курсора с текущего атрибута. SetConsoleCursorPosition – установить курсор на задан.позицию. SetConsoleTextAttribute – установить атрибут для текста.
Собственный обработчик прерываний среды MS DOS пишется в след.случаях: 1. чтобы заменить стандартный обработчик (в особых случаях ошибок при выполнении программы) – деление на 0. 2. чтобы заменить стандартный обработчик MS DOS для опред.ситуаций – обработ.по Ctrl+c. 3. чтобы связать свой обработчик прерывания со стандартным обраб. и выполнить, как системный, так и собственный – прерывание от таймера. 4. чтобы обеспечить связь программы, которая остает.резидентной после завершения с другими прикладными программ. 5. чтобы обслужить прерывание не поддерживаясь стандарт.драйверами устр. MS DOS. Для установки корректных обраб.прерываний. чтобы они не вступали в конфликт с другими, MS DOS пред-ет спец.средства – ч/з прерывание int 21h. 25h – устан.собствен.обработчик прер-я. 35h – получить указ-ль прер-я, известный системе в настоящ.время 31h – завершение программ.и остав.резидент-й. Int 27h - завершение программ.и остав.резидентй. Проблемы, возникающие при установке программы в резидент: 1. надо сохранить адрес старшего обработ.прер-ий. 2. проверить не находится ли наша программа в резиденте. 3. установить новые адреса обработ.прерываний. Для определения наличия программы в памяти используются след.способы: 1. применение незадействен.прерывания или несуществен.ф-ии какого-либо прерывания. 2. с помощью мультиплексного прерывания INT 2FH, которая предназначена для взаимодействия DOS с резидент.програм. 3. применеие спецификации AMIS-альтер.спец.мультипл.прер-я – ч/з прер-е INT 20h.
Дата добавления: 2014-01-06; Просмотров: 498; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |