Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания1.doc
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
130.05 Кб
Скачать

Организация памяти

Память микропроцессора intel 8088 разделена на 8-ми битовые величины (байты), 16-ти битовые величины (слова) и 32-х битовые (двойные слова). Слова хранятся в двух последовательных байтах памяти, когда байт младшего порядка находится по младшим адресам , а старший байт в старших адресах.

Адресом слова или двойного слова является адрес байта младшего порядка. Память может быть разбита на один или несколько сегментов различной длины. Сегментация полезна при организации памяти в логические модули, и является инструментом для программиста прикладных программ.

Процессор i8088 имеет три различных адресных пространства: логическое, линейное и физическое. Логический адрес (его также называют виртуальным адресом) состоит из селектора сегмента и смещения. Селектор представляет собой содержимое сегментного регистра. Смещение формируется путем суммирования всех адресных компонентов (Базы, Индекса, Смещения) в исполнительный адрес (т.е. исполнительный адрес определяется в любом режиме адресации).

Блок сегментации переводит логическое адресное пространство в 32-х разрядное линейное адресное пространство.

Физический адрес - это то, что появляется на адресной шине.

Использование сегментного регистра

Основной структурой данных, используемых для организации памяти, является сегмент. Объем сегмента составляет до 64кбайт.

Обычно, ссылки на данные используют селектор, который содержится в регистре DS. Ссылки на данные в стеке используют регистр SS и регистр SP в качестве смещения, а выборки команд используют регистр CS, содержание указателя IP команд обеспечивает смещение. Специальные команды позволяют явно использовать заданный сегментный регистр, и отменять неявные правила, перечисленные в таблице.

Режимы адресации

Режим адресации указывает способ задания номера ячейки памяти, в которой располагаются данные или команда. Используются они в операндах команд микропроцессора i8088.

Рассмотрим некоторые режимы адресации микропроцессора INTEL 8088:

  • РЕГИСТРОВЫЙ РЕЖИМ АДРЕСАЦИИ: операнд расположен в одном из 8-ми,16-ти битном регистре общего назначения.

  • РЕЖИМ НЕПОСРЕДСТВЕННОГО ОПЕРАНДА: операнд включен в команду как часть операционного кода.

  • ПРЯМОЙ режим: Адрес операнда содержится как часть команды в виде смещения. Пример: INC WORD PTR[500]

  • РЕГИСТРОВЫЙ КОСВЕННЫЙ режим: Регистр содержит адрес операнда. Пример: MOV [CX], DX

  • БАЗОВЫЙ ОТНОСИТЕЛЬНЫЙ: Содержание регистра добавляется к смещению. Пример: MOV CX[AX+4], DX.

Пространство ввода/вывода

Микропроцессор INTEL 8088 имеет два различных физических адресных пространства: ПАМЯТЬ и ВВОД/ВЫВОД. Обычно, внешние устройства помещаются в пространство ВВОДА/ВЫВОДА.

ВВОД/ВЫВОД пространство состоит из 64Кбайт. Оно относится к физической памяти, а не к линейному адресу, поскольку команды ввода/вывода не проходят через устройства, выполняющие сегментацию.

Память ВВОДА/ВЫВОДА работает как дополнительная адресная линия, позволяя системотехнику легко определить, к какому адресному пространству в настоящее имеет доступ процессор. Доступ к портам ВВОДА/ВЫВОДА можно получить через команды: IN (операнд) или OUT (операнд), где операнд содержит адрес порта в виде непосредственного операнда (если не превышает 256) или находится в регистрах DL или DX.

Адреса портов ВВОД/ВЫВОДА от 00FFh до 00FFh зарезервированы для использования INTEL. Цифровые сопроцессоры также постоянно хранятся в данном пространстве ВВОДА/ВЫВОДА в ячейках: 8000000F8h-800000FCh.