Файл: Семейство микроконтроллеров 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 |
Библиотека Компэла |
|