Определение понятия операнды. Классификация операндов.

Операнды — это объекты, над которыми или при помощи которых выполняются действия, задаваемые инструкциями или директивами.Машинные команды могут либо совсем не иметь операндов, либо иметь один или два операнда. Большинство команд требует двух операндов, один из которых является источником, а другой — приемником (операндом назначения). В двухоперандной машинной команде возможны следующие сочетания операндов:

- регистр — регистр;

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

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

- непосредственный операнд — регистр;

- непосредственный операнд — память.

Классификация операндов:

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

- Адресные операнды — задают физическое расположение операнда в памяти с помощью указания двух составляющих адреса: сегмента исмещения.

- Перемещаемые операнды — любые символьные имена, представляющие некоторые адреса памяти. Эти адреса могут обозначать местоположение в памяти некоторых инструкции (если операнд — метка) или данных (если операнд — имя области памяти в сегменте данных).

- Счетчик адреса — специфический вид операнда. Он обозначается знаком $.

- Регистровый операнд — это просто имя регистра. В программе на ассемблере можно использовать имена всех регистров общего назначения и большинства системных регистров.

- Базовый и индексный операнды. Этот тип операндов используется для реализации косвенной базовой, косвенной индексной адресации или их комбинаций и расширений.

- Структурные операнды используются для доступа к конкретному элементу сложного типа данных, называемого структурой.

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