Способы адресации и система команд

Микроконтроллер производит операции над 8 — или 16-разрядными операндами, которые в зависимости от выполняемой команды воспринимаются как числа без знака: байт (BYTE), слово (WORD) или числа со знаком: короткое целое (SHORT INTEGER) или обычное целое (INTEGER) число. Отдельные операции (сдвиги, умножение, деление) выполняются с 32-разрядными операндами, которыми могут служить двойное число без знака (DOUBLE WORD) и длинное число со знаком (LONG INTEGER). Микроконтроллер использует байтную организацию памяти (см.раздел 1.2) с размещением младшего байта по меньшему (четному) адресу. Для выборки 16-разрядных операндов (WORD, INTEGER) следует использовать только четные адреса, а для выборки 32-разрядных операндов — адреса, кратные четырем.

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

Микроконтроллер реализует четыре основных способа адресации операндов:

непосредственный; регистровый; косвенно-регистровый; индексный.

При этом два последних способа имеют ряд модификаций.

Непосредственая адресация. Операндом является один (BYTE, SHORT INTEGER) или два (WORD, INTEGER) байта команды. При этом только один из заданных командой операндов может задаваться непосредственно, для других операндов должна использоваться регистровая адресация.

Регистровая адресация. Операнд выбирается из регистра, номер которого определяется одним из байтов команды. Таким образом адресуются 256 регистров младшего файла. Регистры старшего файла могут выбираться таким образом только, если они кадрированы — перемещены в адресное окно младшего регистрового файла (см. раздел 1.2). Для выбора 16-разрядных операндов должны использоваться четные номера регистров, для выбора 32-разрядных операндов — адреса, кратные четырем.

Косвенно-регистровая адресация. В этом случае операнд выбирается из внутренней или внешней памяти по адресу, заданному 16-разрядным содержимым регистра, номер которого указан в команде. Таким образом, адресом служит 16-разрядное слово, выбираемое из пары регистров младшего файла*.

В команде должен быть указан номер четного регистра, содержащего мдад-ший байт адреса, старший байт будет выбран из регистра со следующим нечетным номером (адресом). Таким образом, объем адресуемой памяти ограничивается 64 Кбайтами.

Чтобы адресовать полный объем памяти 1 Мбайт, используется расширенная косвенно-регистровая адресация, которая реализуется при выполнении команд ELD, ELDB, EST, ESTB, EBMOVI, EBR, ECALL, EJMP. Эти команды используют в качестве адреса содержимое 20 младших разрядов из четырех рядом расположенных 8-разрядных регистров младшего файла, адресуемых заданным в команде номером младшего регистра, кратным четырем. При данном варианте косвенно-регистровой адресации младший разряд байта команды, определяющий номер регистра, должен иметь значение «0».

Comments are closed.