Режимы адресации процессора Intel 8086 и способы ее задания

Опубликовано декабря 15, 2017 в Архитектура процессора Intel

В основном для задания режимов адресации используется специальный байт, который принято называть постбайтом адресации (он обязательно следует за байтом кода операции) или байтом mod, r/m (по наименованию основных полей, которые являются неизменными в этом байте).

Режимы адресации, реализуемые на основе постбайта адресации, принято называть постбайтными режимами.

Для двухадресной команды постбайт адресации имеет следующую структуру:

Байт с подобной структурой осуществляет адресацию двух операндов, один из которых, задаваемый полем reg, является регистровым. Из этого следует, что машинные команды, использующие постбайт адресации, реализуют операции следующих типов:

  • reg — reg (регистр — регистр);
  • reg — mem (регистр — память);
  • mem — reg (память — регистр);

Режимы адресации процессора Intel 8086 и способы ее задания

Операции типа «память — память» реализуются в командах обработки строк (цепочек). Например, команда MOVS (пересылка строки) осуществляет пересылку строки-источника в строку-приемник. Естественно, обе строки находятся в памяти.

Поле reg постбайта задает прямой регистровый адрес операнда, находящегося в РОИ.

Поле r/m (register/memory) задает адрес второго операнда команды, находящегося либо в регистре, либо в памяти. Факт принадлежности поля r/m к адресации регистра или памяти определяется значением ноля mod (режим).

Смещение интерпретируется как целое число со знаком, естественно, представляемое в дополнительном коде. В соответствии с этим при сложении байтного смещения с 16-разрядными компонентами в виде базы и (или) индекса на этапе формирования ЕА производится предварительное расширение смещения путем копирования знакового бита во все биты старшего байта. Таким образом, старший байт содержит все пули в случае положительного смещения и все единицы в случае отрицательного смещения.

При использовании двухадресной команды адрес одного из операндов используется и как адрес операнда, и как адрес результата. Этот операнд называется приемником (dst — destination).

Использование одного из операндов в качестве приемника определяется значением специального бита d (direction) кода операции. При d = 1 приемником является операнд, адресуемый с помощью поля reg, при d = 0 — операнд, адресуемый с помощью поля r/m.

Непосредственная и неявная адресации задаются не с помощью постбайта, а с помощью кода операции, в связи с чем эти режимы не относятся к постбайтным.

Косвенная адресация с использованием памяти реализуется в командах перехода JMP (jump) и в командах вызова CALL, но этот режим используется не для адресации операнда, а для задания адреса команды (перехода или вызова).

Перейдя на сайт компании rackstore, к вашим услугам виртуальный сервер vds, а так же первичная установка операционной системы на выбор: CentOS, Debian, FreeBSD, Ubuntu, Windows Server!