Микроконтроллеры
Контроллерный рынок России:факты и домыслы, парадоксы и закономерности.
Таблица. Набор команд MSP430
Мнемоника | Описание | V | N | Z | C | ||
ADC(.B)* | dst | Сложение бита С с получателем | dst + C -> dst | * | * | * | * |
ADD(.B) | src,dst | Сложение источника с получателем | src + dst -> dst | * | * | * | * |
ADDC(.B) | src,dst | Сложение источника и бита С с получателем | src + dst + C -> dst | * | * | * | * |
AND(.B) | src,dst | Операция «И» источника и получателя | src .and. dst -> dst | 0 | * | * | * |
BIC(.B) | src,dst | Очистка битов в получателе | .not.src .and. dst -> dst | - | - | - | - |
BIS(.B) | src,dst | Установка битов в получателе | src .or. dst -> dst | - | - | - | - |
BIT(.B) | src,dst | Проверка битов в получателе | src .and. dst | 0 | * | * | * |
BR* | dst | Переход по назначению | dst -> PC | - | - | - | - |
CALL | dst | Вызов получателя | PC + 2 -> stack, dst -> PC | - | - | - | - |
CLR(.B)* | dst | Очистка получателя | 0 -> dst | - | - | - | - |
CLRC* | Очистка бита С | 0 -> C | - | - | - | 0 | |
CLRN* | Очистка бита N | 0 -> N | - | 0 | - | - | |
CLRZ* | Очистка бита Z | 0 -> Z | - | - | 0 | - | |
CMP(.B) | src,dst | Сравнение источника и получателя | dst – src | * | * | * | * |
DADC(.B)* | dst | Десятичное сложение бита С с получателем | dst + c -> dst (десятичное) | * | * | * | * |
DADD(.B) | src,dst | Десятичное сложение источника и бита С с получателем | src + dst + C -> dst (десятичное) | * | * | * | * |
DEC(.B)* | dst | Декремент получателя | dst - 1 -> dst | * | * | * | * |
DECD(.B)* | dst | Двойной декремент получателя | dst - 2 -> dst | * | * | * | * |
DINT* | Запрещение прерываний | 0 -> GIE | - | - | - | - | |
EINT* | Разрешение прерываний | 1 -> GIE | - | - | - | - | |
INC(.B)* | dst | Инкремент получателя | dst + 1 -> dst | * | * | * | * |
INCD(.B)* | dst | Двойной инкремент получателя | dst + 2 -> dst | * | * | * | * |
INV(.B)* | dst | Инвертирование получателя | .not.dst -> dst | * | * | * | * |
JC/JHS | label | Переход, если С установлен / переход если наивысший или такой же | - | - | - | - | |
JEQ/JZ | label | Переход, если равно / переход если Z установлен | - | - | - | - | |
JGE | label | Переход, если больше или равно | - | - | - | - | |
JL | label | Переход, если меньше | - | - | - | - | |
JMP | label | Переход | PC + 2 * смещение -> PC | - | - | - | - |
JN | label | Переход, если N установлен | - | - | - | - | |
JNC/JLO | label | Переход, если С не установлен / переод если низший | - | - | - | - | |
JNE/JNZ | label | Переход, если не равно, переход если Z не установлен | - | - | - | - | |
MOV(.B) | src,dst | Пересылка источника в получатель | src -> dst | - | - | - | - |
NOP* | Нет операции | - | - | - | - | ||
POP(.B)* | dst | Снятие элемента со стека в получатель | @SP -> dst, SP + 2 -> SP | - | - | - | - |
PUSH(.B) | src | Помещение источника в стек | SP - 2 -> SP, src -> @SP | - | - | - | - |
RET* | Возврат из подпрограммы | @SP -> PC, SP + 2 -> SP | - | - | - | - | |
RETI | Возврат из прерывания | * | * | * | * | ||
RLA(.B)* | dst | Арифметическая ротация влево | * | * | * | * | |
RLC(.B)* | dst | Ротация влево через С | * | * | * | * | |
RRA(.B) | dst | Арифметическая ротация вправо | 0 | * | * | * | |
RRC(.B) | dst | Ротация вправо через С | * | * | * | * | |
SBC(.B)* | dst | Вычитание not(C) из получателя | dst + 0FFFFh + C -> dst | * | * | * | * |
SETC* | Установка С | 1 -> C | - | - | - | 1 | |
SETN* | Установка N | 1 -> N | - | 1 | - | - | |
SETZ* | Установка Z | 1 -> Z | - | - | 1 | - | |
SUB(.B) | src,dst | Вычитание источника из получателя | dst + .not.src + 1 -> dst | * | * | * | * |
SUBC(.B) | src,dst | Вычитание источника и not(C) из получателя | dst + .not.src + C -> dst | * | * | * | * |
SWPB | dst | Обмен байтов | - | - | - | - | |
SXT | dst | Распространение знака | 0 | * | * | * | |
TST(.B)* | dst | Проверка получателя | dst + 0FFFFh + 1 | 0 | * | * | 1 |
XOR(.B) | src,dst | Исключающее «ИЛИ» источника и получателя | src .xor. dst -> dst | * | * | * | * |