Система команд микроконтроллеров семейства 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: операция с байтом


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


Примечание: использование меток EDE и TONI
Везде в документации по семейству MSP430 используются универсальные метки EDE и TONI. Они являются только метками, не имеющими никакого специального назначения.

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

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

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

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

Мнемоника 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 0 * * *
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 0 * * *
    * - Влияет на бит статуса
    - - Не влияет на бит статуса
    0 - Бит статуса очищается
    1 - Бит статуса устанавливается
Примечание: Команды CMP и SUB
Команды CMP и SUB идентичны, за исключением сохранения результата. Это также справедливо для команд BIT и AND.

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

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

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

Мнемоника S-Reg, D-Reg Операция Биты статуса
V N Z C
RRC(.B) dst C -> MSB -> … LSB -> C * * * *
RRA(.A) dst MSB -> MSB -> … LSB -> C 0 * * *
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 0 * * *
    * - Влияет на бит статуса
    - - Не влияет на бит статуса
    0 - Бит статуса очищается
    1 - Бит статуса устанавливается

Для команды CALL возможны все способы адресации. Если используется символический режим (Адрес), прямой режим (#N), абсолютный режим (&EDE;) или индексный режим x(RN), следующее за командой CALL слово должно содержать информацию об адресе.

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

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

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

Мнемоника 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
где: PCnew – новое содержимое программного счетчика;
PCold – исходное содержимое программного счетчика;
PCoffset – 10-разрядная величина смещения программного счетчика.







Декоративный мелкий камень для сада купить в. Декоративные фонтаны для сада из камней купить.;лопатка для пиццы

© 2008 Электроника для начинающих | Programming V.Lasto | Povered by Nano-CMS | Designer S.Gordi