Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(4) Маленькая шпорка2.doc
Скачиваний:
72
Добавлен:
24.12.2018
Размер:
2.87 Mб
Скачать

53. Архитектура системы команд регистрового типа

Процессор включает в себя ряд регистров общего назначение (РОН). Их можно рассматривать как явно управляемый кэш для хранения недавно использовавшихся данных. Размер регистров обычно совпадает с размером машинного слова. К регистру можно обратиться, указав его номер. Количество РОН в архитектурах типа CISC обычно невелико (от 8 до 32), и для их адресации необходимо не более 5 разрядов, поэтому в командах можно указать номера 2, а то и 3 регистров (третий – для результата). Регистровая архитектура допускает расположение операндов как в основной памяти, так и в РОН. В рамках регистровых АСК выделяют три подвида команд обработки: регистр – регистр, регистр – память, память – память.

Вариант

Достоинства

Недостатки

Регистр-регистр

Простая реализации, фиксированная длина команд, простая модель формирования объектного кода при компиляции программ, возможность выполнения всех команд за одинаковое количество тактов

Большая длина объектного кода, из-за фиксированной длины команд часть разрядов в коротких командах не используется

Регистр-память

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

Потеря одного из операндов при записи результата, длинное поле адреса памяти в команды сокращает место под номер регистра, что ограничивает число РОН.

Память-память

Компактность объектного кода, малая потребность в регистрах для хранения промежуточных данных

Разнообразие форматов команд и времени их исполнения низкое быстродействие из-за обращения к памяти

Вариант «регистр-регистр» является основным в вычислительных машинах типа RISC.

Команды типа «регистр-память» характерны для CISC-машин. Вариант «память-память» считается неэффективным, хотя и остается в наиболее сложных моделях машин класса CISC. Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами.

54. Преобразование логического адреса в физический

Смещение в сегменте (эффективный или исполнительный адрес - EA) может быть вычислено на основе значений регистров общего назначения и/или указанного в коде инструкции относительного смещения, при этом любой или даже несколько из указанных компонентов могут отсутствовать:

EA = BASE + (INDEX*SCALE) + DISPLACEMENT

Эфф. размер адреса

32

16

Base (база массива)

EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI

BX, BP

Index (индекс в массиве)

EAX, EBX, ECX, EDX, EBP, ESI, EDI

SI, DI

Scale (масштабный коэффициент)

1, 2, 4 или 8 (включается в код инструкции)

не используется (всегда 1)

Displacement (относительное смещение)

8- или 32-битное число непосредственно в коде инструкции

8- или 16-битное число непосредственно в коде инструкции

Таким образом, различные способы вычисления эффективного адреса формируют еще несколько режимов адресации:

EA=DISPLACEMENT (например, INC byte ptr [500h]);

EA=BASE (например, MOV AL,[BX] для операнда-источника);

EA=BASE+DISPLACEMENT (например, ADD AL,[ECX+1234h] для операнда-источника);

EA=BASE+(INDEX*SCALE) (например, SUB EAX,[EBX+ECX*2] для операнда-источника);

EA=INDEX*SCALE+DISPLACEMENT (например, MOV [EAX*4+TableOffset],BL для операнда-приемника);

EA=BASE+(INDEX*SCALE)+DISPLACEMENT (например, DEC dword ptr [EAX+ECX*2+200h]) и др.