Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 2785

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

MSP430x1xxFamily

3.3.6. Косвенный автоинкрементный режим

Косвенный автоинкрементный режим описан в таблице 3.9.

Таблица 3.9. Описание косвенного автоинкрементного режима

Код ассемблера

Содержимое ПЗУ

MOV @R10+, 0(R11)

MOV @R10+, 0(R11)

Длина: Одно или два слова

Операция: Пересылка содержимого с исходного адреса (содержится в R10) по адресу назначения (содержится в R11). Регистр R10 инкрементируется после выборки на 1 для байтовых операций или на 2 для команд-слов, таким образом указывается следующий адрес без дополнительных действий. Это полезно для обработки таблиц.

Комментарий: Действительно только для операнда источника. В качестве операнда получателя подставляется 0(Rd) плюс вторая команда INCD Rd.

Пример: MOV.B @R10+, 0(R11)

Автоинкремент содержимого регистра происходит после выборки операнда. Этот процесс показан на рис. 3.8.

50

Библиотека Компэла


Раздел III.

16-разрядное RISC CPU

Рис. 3-8. Операция выборки операнда

3.3.7. Прямой режим

Прямой (непосредственный) режим описан в таблице 3.10.

Таблица 3.10. Описание прямого режима

Код ассемблера

Содержимое ПЗУ

MOV #45h, TONI

MOV @PC+, X(PC)45X=TONI-PC

Длина: Два или три слова. На одно слово меньше, если может использоваться константа генераторов CG1 или CG2.

Операция: Пересылка непосредственной константы 45h, находящейся в слове, следующем за командой, по адресу назначения TONI. Когда происходит выборка источника, программный счетчик указывает на слово, следующее за командой, и выполняется пересылка содержимого по назначению.

Комментарий: Действительно только для операнда источника

Пример: MOV #45h,TONI

Библиотека Компэла

51


MSP430x1xxFamily

3.4. Набор команд

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

Примечание: адрес получателя

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

52

Библиотека Компэла


Раздел III.

16-разрядное RISC CPU

Примечание: использование меток EDE и TONI

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

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

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

Рис. 3-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.

Библиотека Компэла

53


MSP430x1xxFamily

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

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

Рис. 3-10. Формат команды с одним операндом

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

Таблица 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-11. Формат команды условного перехода

54

Библиотека Компэла