Командные циклы и длина команд микроконтроллеров семейства MSP430
Число тактовых циклов ЦПУ, требуемых для выполнения команды, определяется форматом команды и используемым режимом адресации, и не зависит, собственно, от команды. Понятие количества тактовых циклов относится к MCLK.
Циклы прерывания и сброса
В таблице 3.14 приведено количество циклов ЦПУ для обслуживания прерывания и сброса.
Таблица 3.14. Циклы прерывания и сброса
| Действие | Кол-во циклов | Длина команды |
| Возврат из прерывания (RETI) | 5 | 1 |
| Получение прерывания | 6 | - |
| Сброс WDT | 4 | - |
| Сброс (nonRST/NMI) | 4 | - |
Циклы команд формата-II (один операнд) и их длина
В таблице 3.15 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-II.
Таблица 3.15. Количество циклов и длина команд формата-II
| Режим адресации |
Действие | Длина команды |
Пример | ||
| RRA,RRC SWPB,SXT |
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 (двойной операнд) и их длина
В таблице 3.16 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-I.
Таблица 3.16. Количество циклов и длина команд формата-I
| Режим адресации | Кол-во циклов |
Длина команды |
Пример | |
| Src | Dst | |||
| Rn | Rm | 1 | 1 | MOV R5,R8 |
| PC | 2 | 1 | BR R9 | |
| x(Rm) | 4 | 2 | ADD R5,3(R6) | |
| EDE | 4 | 2 | XOR R8,EDE | |
| &EDE | 4 | 2 | MOV R5,&EDE | |
| @Rn | Rm | 2 | 1 | AND @R4,R5 |
| PC | 3 | 1 | BR @R8 | |
| x(Rm) | 5 | 2 | XOR @R5,8(R6) | |
| EDE | 5 | 2 | MOV @R5,EDE | |
| &EDE | 5 | 2 | XOR @R5,&EDE | |
| @Rn+ | Rm | 2 | 1 | ADD @R5+,R6 |
| PC | 3 | 1 | BR @R9+ | |
| x(Rm) | 5 | 2 | XOR @R5,8(R6) | |
| EDE | 5 | 2 | MOV @R9+,EDE | |
| &EDE | 5 | 2 | XOR @R9+,&EDE | |
| #N | Rm | 2 | 2 | MOV #20,R9 |
| PC | 3 | 2 | BR #2AEh | |
| x(Rm) | 5 | 3 | MOV #0300h,0(SP) | |
| EDE | 5 | 3 | ADD #33,EDE | |
| &EDE | 5 | 3 | ADD #33,&EDE | |
| x(Rn) | Rm | 3 | 2 | MOV 2(R5),R7 |
| PC | 3 | 2 | BR 2(R6) | |
| TONI | 6 | 3 | MOV 4(R7),TONI | |
| x(Rm) | 6 | 3 | ADD 3(R4),6(R9) | |
| &TONI | 6 | 3 | MOV 3(R4),&TONI | |
| EDE | Rm | 3 | 2 | AND EDE,R6 |
| PC | 3 | 2 | BR EDE | |
| TONI | 6 | 3 | CMP EDE,TONI | |
| x(Rm) | 6 | 3 | MOV EDE,0(SP) | |
| &TONI | 6 | 3 | MOV EDE,&TONI | |
| &EDE | Rm | 3 | 2 | MOV &EDE,R8 |
| PC | 3 | 2 | BRA &EDE | |
| TONI | 6 | 3 | MOV &EDE,TONI | |
| x(Rm) | 6 | 3 | MOV &EDE,0(SP) | |
| &TONI | 6 | 3 | MOV &EDE,&TONI | |
3.4.5 Описание набора команд
Карта команд показана на рис.3.20, а полный набор команд приведен в таблице 3.17.
Рис.3.20. Карта команд ядра
| 000 | 040 | 080 | 0С0 | 100 | 140 | 180 | 1С0 | 200 | 240 | 280 | 2С0 | 300 | 340 | 380 | 3С0 | |
| 0xxx | ||||||||||||||||
| 4xxx | ||||||||||||||||
| 8xxx | ||||||||||||||||
| 1xxx | RRC | RRC.B | SWPB | RRA | RRA.B | SXT | PUSH | PUSH.B | CALL | RETI | ||||||
| 14xx | ||||||||||||||||
| 18xx | ||||||||||||||||
| 1Cxx | ||||||||||||||||
| 20xx | JNE/JNZ | |||||||||||||||
| 24xx | JEQ/JZ | |||||||||||||||
| 28xx | JNC | |||||||||||||||
| 2Cxx | JC | |||||||||||||||
| 30xx | JN | |||||||||||||||
| 34xx | JGE | |||||||||||||||
| 38xx | JL | |||||||||||||||
| 3Cxx | JMP | |||||||||||||||
| 4xxx | MOV,MOV.B | |||||||||||||||
| 5xxx | ADD,ADD.B | |||||||||||||||
| 6xxx | ADDC,ADDC.B | |||||||||||||||
| 7xxx | SUBC,SUBC.B | |||||||||||||||
| 8xxx | SUB,SUB.B | |||||||||||||||
| 9xxx | CMP,CMP.B | |||||||||||||||
| Axxx | DADD,DADD.B | |||||||||||||||
| Bxxx | BIT,BIT.B | |||||||||||||||
| Cxxx | BIC,BIC.B | |||||||||||||||
| Dxxx | BIS,BIS.B | |||||||||||||||
| Exxx | XOR,XOR.B | |||||||||||||||
| Fxxx | AND,AND.B | |||||||||||||||