Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основы организации низкоуровневого ввода\вывода информации




ЛЕКЦИЯ 11

ПРЕРЫВАНИЯ И ОСОБЫЕ СИТУАЦИИ

Прерывают или изменяют выполнение программы.

ПРЕРЫВАНИЯ

Делятся на 4 класса

1. Программное (особые ситуации)

Генерируются в следующих случаях:

a. Арифметическое переполнение

b. Деление на 0

c. Выполнение некорректной команды

d. Ссылка на запрещенную область памяти

e. Ловушки

2. Прерывания по таймеру

a. Позволяет ОС выполнять свои функции периодически через заданные промежутки времени

3. Прерывания ввода\вывода. Генерируются процессором ввода\вывода

4. Аппаратные прерывания. Реакция на асинхронные события (неожиданно)

УРОВНИ ВВОДА\ВЫВОДА

1. Аппаратный. Обмен данными между процессором и устройствами происходит через порты

2. Программный. Уровень операционной системы. Не зависит от технических характеристик портов конкретной модели ПК.

3. Уровень приложений. Инвариантен к любой вычислительной платформе. Уровень работы в сети.

ПРОГРАММНЫЙ УРОВЕНЬ ВВОДА\ВЫВОДА

Этот уровень управляется ОС которая обеспечивает взаимодействие программы пользователя с устройствами ввода\вывода, а также файловыми системами и другими программами пользователя. Полную свободу доступа к оперативной памяти, устройствам и портам обеспечивает состояние компьютера в момент его загрузки. В основе программного ввода\вывода лежит понятие прерывания (interrupt). Прерывания обрабатываются обработчиками прерываний(ISR). В asm вызов обработчика прерывания происходит по команде int.

КОМАНДЫ ОБРАБОТКИ ПРЕРЫВАНИЙ (INTx)

Любая операция в\в осуществляется определенной подпрограммой обработки прерываний. вызов подпрограммы осуществляется командами:

· INTO. Эта команда представляется следующей логикой работы:

o Если OF=0 то никакие действия не производить и продолжать действия программы. Если OF=1 то необходимо инициировать команду "INT 4"

· INT НОМЕР_ПРЕРЫВАНИЯ

1. Записать в стек регистр флагов (FLAGS)

2. Записать в стек адрес возврата CS,IP

3. Сбросить флаг внешних прерываний IF

4. Передать управление обработчику прерываний с заданным номером

5. После завершения работы обработчика восстановить адрес точки возврата, восстановить состояние флагов и продолжить выполнение программы.

Обработчики прерываний могут находится в 2х местах:

1. Ядро ОС

2. BIOS

INT 21h -> из ядра ОС

INT 16h -> из BIOS

Таким образом INT прерывает выполнение программы, передает управление ОС или BIOS для выполнения того или иного обработчика прерывания, а затем возвращает управление в прерванную программу.

При выполнении операции в\в при помощи прерываний BIOS следует помнить, что многие обработчики зависят от BIOS данного конкретного компьютера. По-этому результат работы на одной вычислительной платформе может не получится на другой.

Чтобы обратиться к требуемому обработчику прерываний необходимо выполнить следующие действия:

· Загрузить регистры

· Подготовить буфер в\в

· Поместить номер обработчика (функции) в ah

· Вызвать прерывание

Пример:

Требуется завершить программу с определенным кодом и передать управление ОС.

mov al, code

mov ah,4c

INT 21h

ВЫВОД ДАННЫХ НА ДИСПЛЕЙ

Используется прерывание 21h функция которого - вывод данных на экран в символьном виде в ASCII

Основные функции вывода данных на дисплей для прерывания 21h

Номер функции в ah Операция Регистры или данные
  Изображение символа с проверкой ctrl+break <dl> <-символ
  Изображение символа без проверки ctrl+break <dl> <-символ
  Изображение строки символов с проверкой на нажатие ctrl+break <DS:DX> <-начальный адрес строки с обязательным окончанием строки знаком $



Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 396; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.