Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2844
Скачиваний: 1
Раздел III. |
16-разрядное RISC CPU |
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, SWPB, |
PUSH |
CALL |
команды |
|||
SXT |
|||||||
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 #0F000h |
||
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 с непосредственным режимом в поле получателя. Их использование в непосредственном режиме приведет к выполнению непредсказуемой программной операции.
Библиотека Компэла |
91 |
|
MSP430x1xxFamily
Циклы команд формата-III (команды перехода) и их длина
Все команды перехода требуют одно слово кода и при выполнении используют два цикла ЦПУ, независимо от того, сделан переход или нет.
Циклы команд формата-I (двойной операнд) и их длина
В таблице 3.16 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-I.
Таблица 3.16. Количество циклов и длина команд формата-I
Режим адресации |
Количество |
Длина |
Пример |
||||||
Src |
Dst |
циклов |
команды |
||||||
Rm |
1 |
1 |
MOV |
R5,R8 |
|||||
PC |
2 |
1 |
BR |
R9 |
|||||
Rn |
x(Rm) |
4 |
2 |
ADD |
R5,4(R6) |
||||
EDE |
4 |
2 |
XOR |
R8,EDE |
|||||
&EDE |
4 |
2 |
MOV |
R5,&EDE |
|||||
Rm |
2 |
1 |
AND |
@R4,R5 |
|||||
PC |
3 |
1 |
BR |
@R8 |
|||||
@Rn |
x(Rm) |
5 |
2 |
XOR |
@R5,8(R6) |
||||
EDE |
5 |
2 |
MOV |
@R5,EDE |
|||||
&EDE |
5 |
2 |
XOR |
@R5,&EDE |
|||||
Rm |
2 |
1 |
ADD |
@R5+,R6 |
|||||
PC |
3 |
1 |
BR |
@R9+ |
|||||
@Rn+ |
x(Rm) |
5 |
2 |
XOR |
@R5,8(R6) |
||||
EDE |
5 |
2 |
MOV |
@R9+,EDE |
|||||
&EDE |
5 |
2 |
XOR |
@R9+,&EDE |
|||||
Rm |
2 |
2 |
MOV |
#20,R9 |
|||||
PC |
3 |
2 |
BR |
#2AEh |
|||||
#N |
x(Rm) |
5 |
3 |
MOV |
#0300h,0(SP) |
||||
EDE |
5 |
3 |
ADD |
#33,EDE |
|||||
&EDE |
5 |
3 |
ADD |
#33,&EDE |
|||||
Rm |
3 |
2 |
MOV |
2(R5),R7 |
|||||
PC |
3 |
2 |
BR |
2(R6) |
|||||
x(Rn) |
TONI |
6 |
3 |
MOV |
4(R7),TONI |
||||
x(Rm) |
6 |
3 |
ADD |
4(R4),6(R9) |
|||||
&TONI |
6 |
3 |
MOV |
2(R4),&TONI |
|||||
Библиотека Компэла |
|||||||||
92 |
|||||||||
Раздел III. 16-разрядное RISC CPU
Таблица 3.16. (Окончание) |
|||||||
Режим адресации |
Количество |
Длина |
Пример |
||||
Src |
Dst |
циклов |
команды |
||||
Rm |
3 |
2 |
AND |
EDE,R6 |
|||
PC |
3 |
2 |
BR |
EDE |
|||
EDE |
TONI |
6 |
3 |
CMP |
EDE,TONI |
||
x(Rm) |
6 |
3 |
MOV |
EDE,0(SP) |
|||
&TONI |
6 |
3 |
MOV |
EDE,&TONI |
|||
Rm |
3 |
2 |
MOV |
&EDE,R8 |
|||
PC |
3 |
2 |
BRA |
&EDE |
|||
&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.
000 |
040 |
080 |
0С0 |
100 |
140 |
180 |
1С0 |
200 |
240 |
280 |
2С0 |
300 |
340 380 3С0 |
||||||
0xxx |
|||||||||||||||||||
4xxx |
|||||||||||||||||||
8xxx |
|||||||||||||||||||
Cxxx |
|||||||||||||||||||
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 |
||||||||||||||||||
Рис. 3-20. Карта команд ядра |
|||||||||||||||||||
Библиотека Компэла |
|||||||||||||||||||
93 |
|||||||||||||||||||
MSP430x1xxFamily
Таблица 3.17. Набор команд 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 (десяти- |
||||||
жение бита С с |
* |
* |
* |
* |
|||||
получателем |
чное) |
||||||||
Десятичное сло- |
src + dst + C → dst (де- |
||||||||
DADD(.B) |
src,dst |
жение источника |
* |
* |
* |
* |
|||
и бита С с получа- |
сятичное) |
||||||||
телем |
|||||||||
DEC(.B)* |
dst |
Декремент полу- |
dst - 1 → dst |
* |
* |
* |
* |
||
чателя |
|||||||||
Библиотека Компэла |
|||||||||
94 |
|||||||||
Раздел III. |
16-разрядное RISC CPU |
|||||||
Таблица 3.17. (Продолжение) |
||||||||
Мнемоника |
Описание |
V |
N |
Z |
C |
|||
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* |
Нет операции |
- |
- |
- |
- |
|||
Библиотека Компэла |
||||||||
95 |
||||||||