double arrow

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

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

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

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> <-начальный адрес строки с обязательным окончанием строки знаком $

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: