Руководство пользователя MSP430 (1041606), страница 7
Текст из файла (страница 7)
В таблице 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 |
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 | - | - | - | - |
| RETI |
| TOS -> SR, 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 – новое содержимое программного счетчика; |
3.4.4 Командные циклы и длина команд
Число тактовых циклов ЦПУ, требуемых для выполнения команды, определяется форматом команды и используемым режимом адресации, и не зависит, собственно, от команды. Понятие количества тактовых циклов относится к MCLK.
Циклы прерывания и сброса
В таблице 3.14 приведено количество циклов ЦПУ для обслуживания прерывания и сброса.
Таблица 3.14. Циклы прерывания и сброса
| Действие | Кол-во циклов | Длина команды |
| Возврат из прерывания (RETI) | 5 | 1 |
| Получение прерывания | 6 | - |
| Сброс WDT | 4 | - |
| Сброс (nonRST/NMI) | 4 | - |
Циклы команд формата-II (один операнд) и их длина
В таблице 3.15 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-II.
Таблица 3.15. Количество циклов и длина команд формата-II
| Режим | Действие | Длина | Пример | ||
| RRA,RRC | PUSH | CALL | |||
| Rn | 1 | 3 | 4 | 1 | SWPB R5 |
| @Rn | 3 | 4 | 4 | 1 | RRC @R9 |
| @Rn+ | 3 | 4 | 5 | 1 | SWPB @R10+ |
| #N | См.прим. | 4 | 5 | 2 | CALL #81H |
| X(Rn) | 4 | 5 | 5 | 2 | CALL 2(R7) |
| EDE | 4 | 5 | 5 | 2 | PUSH EDE |
| &EDE | 4 | 5 | 5 | 2 | SXT &EDE |
Примечание: команда формата-II в непосредственном режиме адресации Не следует использовать команды RRA, RRC и SXT с непосредственным режимом в поле получателя. Их использование в непосредственном режиме приведет к выполнению непредсказуемой программной операции.
Циклы команд формата-III (команды перехода) и их длина
Все команды перехода требуют одно слово кода и при выполнении используют два цикла ЦПУ, независимо от того, сделан переход или нет.
Циклы команд формата-I (двойной операнд) и их длина
















