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