Файл: Семейство микроконтроллеров 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