Адресное пространство ввода-вывода

Особое место занимает адресное пространство ввода-вывода, используемое для связи центрального процессора с периферийными устройствами. Подключение периферийного оборудования (клавиатуры, дисплея, дисковых накопителей, принтера, "мыши" и т.д.) и обмен данными с центральным процессором осуществляется через специальные устройства, называемые адаптерами или контроллерами. В состав компьютерной системы входят как специализированные адаптеры (например, видеоадаптер, контроллер прерываний, контроллер дисковода и др. ), так и универсальные адаптеры последовательного (COM1...COM4) и параллельного (LPT1...LPT4) каналов, к которым может подключаться различное программно-управляемое оборудование.

Адаптер содержит несколько информационных регистров (как правило, однобайтовых), через которые и происходит обмен данными между процессором и внешним устройством. Множество регистров всех подключенных адаптеров образуют адресное пространство ввода-вывода, доступ к которому со стороны центрального процессора осуществляется по 16-разрядной шине.

Множество всех регистров одного адаптера объединены понятием порт ввода-вывода, первый регистр порта называется базовым регистром, а его адрес в адресном пространстве ввода-вывода называется базовым адресом порта. Базовые адреса установленных портов определяются в процессе начального тестирования системы и записываются в ОЗУ (в область данных BIOS). Обращение к остальным регистрам порта производится по смещению относительно его базового адреса.


Учебные задания

Методические указания

Для исследования информационной структуры адресного пространства ПК необходимо использовать одну из программ – анализаторов памяти - рекомендуется использовать программу Peek Poke resident (файл PEEK.com) или функционально подобную ей программу FX Show (файл FXShow.com). Указанные программы позволяют просматривать на экране содержимое памяти в шестнадцатеричном или символьном форматах, изменять содержимое памяти "вручную" с помощью простого встроенного редактора, а также копировать в дисковый файл экранный образ фрагмента памяти.

Полезно использовать также резидентный калькулятор (CALC.com), позволяющий выполнять арифметические действия над целыми числами в десятичной и шестнадцатеричной системах счисления. После запуска калькулятора его можно активизировать нажатием комбинации клавиш Alt+ScrollLock или непосредственно из программы PEEK нажатием функциональной клавиши F9.

Более подробная информация о структуре служебных областей памяти ПК содержится в электронном справочнике HELP (файлы Help.exe и Help.dat).

Задание 1.Определите линейные адреса базовой памяти, соответствующие следующим адресам, заданным в сегментной форме: 0000:041Eh; 0040:001Eh; 0000:0408h; 0000:0408h. Результаты представьте в шестнадцатеричной и двоичной системах счисления. Поясните алгоритм работы сумматора адреса.

Задание 2.Оцените количество вариантов записи одного линейного адреса в сегментной форме.

Задание 3. Определите содержимое старшего и младшего байтов двухбайтового машинного слова, расположенного по адресу 0000:041Eh. Запишите это машинное слово в шестнадцатеричной и двоичной системах счисления. Нажимая (не менее 16 раз) на любую из символьных клавишей клавиатуры, проследите за изменениями этого машинного слова. Какая информация содержится в машинном слове по указанному адресу?

Задание 4. Определите состав параллельных и последовательных адаптеров (LPT* и COM*), установленных в Вашем компьютере, и их базовые адреса. Поясните термины: адресное пространство ввода-вывода, адаптер, порт ввода-вывода, базовый адрес.

Задание 5. Поясните термины: "аппаратное прерывание", "программное прерывание", "внешнее прерывание", "внутреннее прерывание", "номер прерывания", "вектор прерывания", "обработчик прерывания".

Задание 6.Опишите структуру таблицы векторов прерываний и алгоритм определения адреса программы обработки N-го прерывания.

Задание 7. Определите начальные адреса программ обработки прерываний №8, №9, №10h, №16h и №21h. Используя электронный справочник HELP, определите назначение этих программ.

Задание 8. Определите начальный адрес программы обработки прерывания клавиатуры (№9). Выведите на экран карту памяти. Определите, какие из программ загружены в память вашего ПК и какие из прерываний "перехвачены" этими программами.

Задание 9. Определите вектора прерываний №1Fh и № 43h. Используя электронный справочник HELP, определите назначение этих векторов.

Контрольные вопросы

Как влияет разрядность процессора и адресной шины на размер адресного пространства ? Определите диапазон линейных адресов для процессоров с 16-, 24- и 32- разрядной адресными шинами.

Какую функцию выполняют сегментные регистры процессора ?

Поясните назначение и алгоритм работы сумматора адреса.

Каковы действия DOS при поступлении сигнала аппаратного прерывания в процессе обработки предыдущего прерывания ?

Каковы возможные последствия программной модификации байтов данных, расположенных по следующим адресам :

0000:0014h, 0000:0408h, 0040:0008h, 0000:0024h, С000:FFFFh.


Лабораторная работа № 5

КЛАВИАТУРА ПК

Цель лабораторной работы – исследование алгоритма реализации процесса ввода данных с клавиатуры и информационной структуры области данных BIOS, обеспечивающей этот процесс.