Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора2(final).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆
  1. Общая структура команды. Способы адресации операндов.

Различают адресный код и исполнительный адрес. Адресный код – это информация об адресе операндов, которые содержат информацию. Исполнительный адрес – это номер ячейки памяти, к которой происходит обращение.

Команда – код, определяющий операцию и данные, участвующие в этой операции; она содержит так же в явной или неявной форме информацию об адресе результата и следующую команду КОП | Адресная часть

Формат команды – структура команды с разметкой номеров разделов, определяющих границы отдельных полей команды. Структура команды весьма сильно влияет на производительность СПО.

Способы адресации операндов:

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

Различают:

  • адресный код - информация об адресе операнда, содержащаяся в команде.

  • исполнительный адрес - номер ячейки памяти, к которой фактически производится обращение.

Способы адресации:

  1. Подразумеваемый операнд.

В команде не содержится явных указаний об адресе операнда, операнд подразумевается и фактически задается кодом операции:

INC INX r (r) <- (r) + 1

  1. Подразумеваемый адрес

В команде отсутствует адрес операнда или результата, но этот адрес подразумевается.

ADD B (A)<- (A) + (B)

  1. Непосредственная адресация

В команде содержится не адрес, а сам операнд. Используется обычно для констант. Выборка операнда и формирование его адреса не нужно.

  1. Прямая адресация

Исполнительный адрес соответствует адресному коду. В команде находится сам адрес.

“-” длинный адрес, необходимо считывать.

  1. Относительная адресация (базирование)

Исполнительный адрес определяется суммой адресного кода команды и некоторого числа (базового адреса)

Аeffисп=Абаз+Аком

Базовый адрес часто хранится в специальном регистре (базовый регистр). В команде выделяется поле для указания номера базового регистра.

“+” меньшая длина адресного кода, при обращении к любой ячейки памяти. В команде указывается только смещение.

Различают адресацию суммированием и совмещением.

а) используется чаще, но сложение - долго.

б) базовый адрес содержит старшие разряды, а следующий младшие разряды.

“-” не возможна адресация всей ОП.

  1. Укороченная адресация

Адресный код содержит только часть адреса (младшие или старшие разряды). Остальное подразумевается. Может использоваться только совместно с другими способами адресации.

Используется для уменьшения длины команды.

  1. Регистровая адресация

Частный случай укороченной адресации

16 РОН - 4 разряда адреса

  1. Косвенная адресация

Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда.

  1. Автоинкрементная и автодекрементная адресация

Эффективна при работе с массивами. Используется, например, при работе с косвенной адресацией, чтобы для обработки каждого элемента массива не загружать новое значение адреса, а использовать автоматическое увеличение или уменьшение на 1 содержимого регистра с адресом.

  1. Адресация слов переменной длины

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

  1. Стековая адресация.

Стековая память реализует безадресное задание операндов.

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

При записи заносимое в стек слово помещается в следующую свободную ячейку стека, а при считывании извлекается последнее поступившее в него слово. Принцип LIFO.

Т.к. указатель стека должен изменятся автоматически, то при операциях со стеком используется безадресное задание операнда, т.е. команда не содержит адреса ячейки стека (но содержит адрес 2-го операнда).