Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ ЛЕКЦИЙ ПО АССЕМБЛЕРУ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
471.55 Кб
Скачать

Перемещаемые программы

Разбивка программы на сегменты обеспечивает создание перемещаемых программ. На этапах трансляции и редактирования формируются относительные адреса всех объектов программы. Это означает, что адреса любой команды или любого поля данных относительно начала соответствующего сегмента остаются неизменными в процессе выполнения программы и не зависят от адресов сегментов программы.

После расположения в памяти программы DOS записывает адреса сегментов программы в соответствующие сегментные регистры процессора и передает управление первой команде программы.

Структура микропроцессора

Операционное устройство (ОУ) Шинный интерфейс (ШИ)

┌─────┬─────┐ ┌───────┼─────────────┐

AX │ AH │ AL │ │ V

├─────┼─────┤ │ │ ┌─────┴────┐

BX │ BH │ BL │ │ │ CS │

├─────┼─────┤ │ │ ├──────────┤

CX │ CH │ CL │ │ │ DS │

├─────┼─────┤ │ │ ├──────────┤

DX │ DH │ DL │ │ │ SS │

├─────┴─────┤ │ │ ├──────────┤

│ BP │ │ │ ES │

├───────────┤ │ │ ├──────────┤

│ SP │ │ │ IP │

├───────────┤ │ │ ├──────────┤

│ SI │ │ │ РЕГИСТРЫ │

├───────────┤ │ │ │ СВЯЗИ │

│ DI │ │ └─┬──────┬─┘

└─────┬─────┘ │ │ V V

^ │ ┌───┴──┐ ┌─┴────┐

V V │ └┐ └─┘ ┌┘

═╤╤══════╤╧════════╤═════╧═╗ └┐СУМ.АДРЕСОВ┌┘

^^ ^ ^ ║ │ └─────┬─────┘

││ V V ║ │

││ ┌────┴───┐ ┌───┴────┐ ║ │ V

││ │БУФ.РЕГ.│ │БУФ.РЕГ.│ ║ ┌────┴────┐

││ └────┬───┘ └───┬────┘ ║ │ │ БЛОК │

││ V V ╟<────────────>┤УПРАВЛЕН.├ <────>

││ ┌───┴───┐ ┌───┴───┐ ║ │ │ ШИНАМИ │

││ └┐ └─┘ ┌┘ ║ └────┬────┘

││ └┐ АЛУ ┌┘ ║ │ └────────────┐

││ └──────┬──────┘ ║ │

│└──────────>V ║ │ ┌───────────────────┐ │

│ ┌──────┴──────┐ ╟<─┬──┼──┤ ОЧЕРЕДЬ КОМАНД ├<──┘

│ │ РЕГ.ФЛАГОВ │ │ └───────────────────┘

│ └──────┬──────┘ ┌───┐ │ │

│ V │БУ ├<┘

└────────────┘ └─┬─┘ │

V Yi

ОУ – осуществляет обработку информации. Шинный интерфейс служит для обмена процессора с памятью и устройствами ввода/вывода. Шинный интерфейс (ШИ) формирует адрес команды и выбирает ее в регистр команд. Блок управления (БУ) дешифрирует команду и формирует последовательность управляющих сигналов Yi, обеспечивающих ее выполнение.

Пример:

ADD AX,B При выполнении этой команды необходим

{AX:=AX+B} цикл обращения к памяти для выборки переменной В.

При запуске программы регистр CS содержит адрес сегмента кода а IP = 0. ШИ складывает CS и IP формируя адрес первой команды программы и обращается к памяти для выборки этой команды.

Команды процессора имеют длину 1-6 байт, поэтому регистр команд имеет длину 6 байт и работает по принципу очереди FIFO – First in, First out.

Одновременно в регистре команд может находиться одна или несколько команд.

Сумматор вычисляет физический адрес памяти, который с его выхода поступает на внешнюю шину.

В процессоре организована параллельная работа ОУ и ШИ. Как только БУ выбирает из регистра команд команду, он начинает её выполнение. Если команда не требует обращения к памяти (IDIV BX {AX:=(DX:AX)/BX}), то при ее выполнении к памяти обращаться не требуется. Команда выполняется несколько тактов и в это время ШИ свободен. Для повышения производительности в этом случае организуется параллельная работа ШИ и ОУ.

ОУ выполняет команду.

ШИ пополняет очередь команд в циклах чтения из памяти. При этом выборка из памяти идет по значению IP. Таким образом, предполагается естественный линейный порядок следования команд. При этом в большинстве случаев ОУ не ожидает выборки команд. Когда ОУ выполняет команду передачи управления, ШИ сбрасывает очередь, выбирает команду по новому адресу и заполняет очередь команд.