Форматы команд ЦПУ микроконтроллеров семейства MSP430

Полный набор команд семейства MSP430 содержит 27 команд ядра и 24 эмулированные команды. Команды ядра – это команды, имеющие уникальный код операции, декодируемый ЦПУ. Эмулированные команды представляют собой инструкции, облегчающие чтение и написание кода, но не имеющие собственного кода операции, поэтому ассемблер автоматически меняет их на эквивалентные команды ядра. Использование эмулированных команд не приводит к увеличению объема кода или снижению производительности.

Существует три формата команд ядра:

- с двойным операндом;

- с одиночным операндом;

- команды перехода.

Все команды с одним и двумя операндами могут быть командами для работы с байтами или командами для работы со словами, используя, соответственно, расширения «.B» или «.W». Байтовые команды используются для доступа к данным байта или к байту периферийного устройства. Команды-слова используются для доступа к данным слова или к слову периферийного устройства. Если никакое расширение не используется, команда является командой-словом.

Источник и получатель в команде определяются следующими полями:

src Операнд источника определяется As и S-reg
dst Операнд получателя определяется Ad D-reg
As Адресные биты, задающие режим адресации, используемые для источника (src)
S-reg Рабочий регистр, используемый в качестве источника (src)
Ad Адресные биты, задающие режим адресации, используемые для получателя (dst)
D-reg Рабочий регистр, используемый в качестве получателя (dst)
B/W Операция с байтом или словом: 0: операция со словом 1: операция с байтом

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

Команды с двойным операндом (Формат I)

На рисунке Д.1 показана структура формата команды с двойным операндом.

Форматы команд ЦПУ микроконтроллеров семейства MSP430 - student2.ru

Рисунок Д.1 – Схема формата команды с двойным операндом

В таблице Д.1 приведено описание и перечень команд с двойным операндом.

Таблица Д.1 - Команды с двойным операндом

Мнемоника S-Reg, D-Reg Операция Биты статуса
V N Z C
MOV(.B) src,dst src --> dst - - - -
ADD(.B) src,dst src + dst --> dst * * * *
ADDC(.B) src,dst src + dst + C --> dst * * * *
SUB(.B) src,dst dst + .not.src + 1 --> dst * * * *
SUBC(.B) src,dst dst + .not.src + C --> dst * * * *
CMP(.B) src,dst dst – src * * * *
DADD(.B) src,dst src + dst + C --> dst (десятичное) * * * *
BIT(.B) src,dst src .and. dst * * *
BIC(.B) src,dst .not.src .and. dst --> dst - - - -
BIS(.B) src,dst src .or. dst --> dst - - - -
XOR(.B) src,dst src .xor. dst --> dst * * * *
AND(.B) src,dst src .and. dst --> dst * * *

Обозначения в таблицеД.1:

* - Влияет на бит статуса.
- - Не влияет на бит статуса.
0 - Бит статуса очищается.
1 - Бит статуса устанавливается.

Команды CMP и SUB идентичны, за исключением сохранения результата. Это также справедливо для команд BIT и AND.

Команды с одним операндом (Формат II)

На рисунке Д.2 показана структура формата команды с одним операндом.

Форматы команд ЦПУ микроконтроллеров семейства MSP430 - student2.ru

Рисунок Д.2 - Схема формата команды с одним операндом

В таблице Д.2 приведено описание и перечень команд с одним операндом.

Таблица Д.2 - Команды с одним операндом

Мнемоника S-Reg, D-Reg Операция Биты статуса
V N Z C
RRC(.B) dst C --> MSB --> … LSB --> C * * * *
RRA(.A) dst MSB --> MSB --> … LSB --> C * * *
PUSH(.B) src SP-2 --> SP, src --> @SP - - - -
SWPB dst Обмен байтами - - - -
CALL dst SP-2 ? SP, PC+2 --> @SP dst --> PC - - - -
RETI   TOS --> SR, SP+2 --> SP TOS --> PC, SP+2 --> SP * * * *
SXT dst Бит7 --> Бит8 … … Бит15 * * *

Обозначения в таблице Д.2:

* - Влияет на бит статуса.
- - Не влияет на бит статуса.
0 - Бит статуса очищается.
1 - Бит статуса устанавливается.

Для команды CALL возможны все способы адресации. Если используется символический, непосредственный, абсолютный или индексный режимы адресации следующее за командой CALL слово должно содержать информацию об адресе.

Команды перехода

На рисунке Д.3 показан формат команды условного перехода.

Форматы команд ЦПУ микроконтроллеров семейства MSP430 - student2.ru

Рисунок Д.3 - Схема формата команды условного перехода

В таблице Д.3 приведено описание и перечень команд переходов.

Таблица Д.3 - Команды переходов

Мнемоника S-Reg, D-Reg Операция
JEQ/JZ Метка Переход к метке, если бит нуля (Z) установлен
JNE/JNZ Метка Переход к метке, если бит нуля (Z) сброшен
JC Метка Переход к метке, если бит переноса (C) установлен
JNC Метка Переход к метке, если бит переноса (C) сброшен
JN Метка Переход к метке, если бит отрицательного результата (N) установлен
JGE Метка Переход к метке, если (N.XOR.V)=0
JL Метка Переход к метке, если (N.XOR.V)=1
JMP Метка Безусловный переход к метке

Условные переходы обеспечивают ветвление программы относительно программного счетчика PC и не оказывают влияния на биты статуса. Возможный диапазон переходов с помощью команды перехода составляет от -511 до +512 слов относительно текущего значения PC. 10-разряное смещение программного счетчика обрабатывается как 10-разрядное значение со знаком: удваивается и складывается с содержимым программного счетчика:

PCnew=PCold + 2 + PCoffset x 2, (1)
где PCnew – новое содержимое программного счетчика; PCold – исходное содержимое программного счетчика; PCoffset – 10-разрядная величина смещения программного счетчика.

Приложение Е

(справочное)

Наши рекомендации