ВНИМАНИЕ!
Здесь приводится очень сокращённый текст контрольной работы. Полную версию
можно скачать бесплатно по указанной выше ссылке.
Линейный адрес, сегментный адрес
Задача 2.1: Объясните понятия линейный адрес и
сегментный адрес. Опишите алгоритм работы сумматора адреса.
Сегментный адрес
Оперативное запоминающее устройство (ОЗУ) состоит из множества упорядоченных ячеек.
Каждая ячейка имеет уникальный номер (адрес). Минимальной адресуемой "порцией" памяти является
байт - ячейка, содержащая 8-разрядный двоичный код. 16-разрядные процессоры фирмы Intel
имеют 20-разрядную адресную шину. Так как при всем желании мы не сможем "запихнуть"
20-разрядное число в 16-разрядный регистр, то для адресации приходится использовать два регистра.
Один из них называется базовым или сегментным и хранит номер сегмента памяти.
А второй - регистр кода команды IP (Instruction Pointer) - хранит смещение
относительно начала данного сегмента (см. рис. 1).
Таким образом, сегмент - это начальный адрес блока памяти,
размер которого не может превышать 65536 байтов (64К). Смещение - это
адрес конкретного байта в пределах данного сегмента (от 0000 до FFFF).
Процессор может поддерживать не более 65536 различных сегментов памяти.
Линейный адрес
Все байты памяти последовательно пронумерованы. Порядковый номер байта в
адресном пространстве компьютера - это и есть его линейный адрес (или физический адрес).
Сумматор адреса
При использовании сегментной организации памяти для определения адреса приходится
выполнять некоторые вычисления. 20-разрядный линейный адрес вычисляется в специализированном аппаратном устройстве, которое
называется сумматор адреса и входит в состав центрального процессора.
Сумматор адреса выполняет операцию сложения со сдвигом над двумя операндами,
которые находятся в соответствующем сегментном регистре и регистре смещения (см. рис. 2).
При выполнении операции сдвига содержимое сегментного регистра (номер сегмента)
сдвигается на четыре двоичных разряда (т.е. умножается на 16 или 10h). В результате
получается 20-битовый базовый адрес - линейный адрес начала сегмента,
номер которого указан в сегментном регистре. После сложения базового адреса сегмента
с содержимым регистра смещения на выходе сумматора формируется полный 20-битовый линейный адрес,
который и передается на адресную шину.
Функциональное назначение областей памяти
Задача 2.2: Определите линейные и сегментные адреса по данным приведенной ниже таблицы.
Результаты представьте в шестнадцатиричной и двоичной системах счисления.
Определите функциональное назначение соответствующих областей памяти ПК.
Алгоритм работы программы обработки прерывания № 9
Задача 2.3: Опишите алгоритм работы программы обработки прерывания № 9 при нажатии
на любую из символьных клавиш.
Клавиатура подключена к линии IRQ1 контроллера прерываний и к порту ввода-вывода с адресом 60h,
в который помещается скан-код последней нажатой (или отпущенной) клавиши.
Линии IRQ1 соответствует прерывание № 9. Обработчик прерывания № 9 записывает данные
об очередной нажатой символьной клавише в буфер клавиатуры (буфер клавиатуры начинается
с адреса 0040:001E), а прикладные программы считывают эти данные для дальнейшего использования.
Управляющие клавиши
Задача 2.4: Опишите алгоритм работы программы обработки прерывания № 9 при нажатии на любую из управляющих клавиш.
Факты нажатия или отпускания управляющих клавиш Shift, Ctrl, Alt, ScrollLock, NumLock, CapsLock,
SysReq или Pause никак не отражаются на буфере клавиатуры. Однако при этом
обработчиком прерывания № 9 в области данных BIOS формируются два байта - флаги клавиатуры.
Биты этих флаговых байтов устанавливаются в 1 или 0, в зависимости от текущего
состояния соответствующих клавиш, или от того, установлен или нет соответствующий режим.
Например, при нажатии клавиши CapsLock, 6-й бит первого и второго флаговых
байтов будет установлен в 1. При отпускании этой клавиши 6-й бит второго байта
будет обнулен, а первый байт останется без изменений, что соответствует ситуации
«установлен верхний регистр». После повторного нажатия и отпускания этой клавиши
оба флаговых бита вернутся в исходное (нулевое) состояние.
|