Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессорная техника / Семейство микроконтроллеров MSP430x2xx_

.pdf
Скачиваний:
94
Добавлен:
05.03.2016
Размер:
2.03 Mб
Скачать

3.4. Система команд 91

Время выполнения и длина команд формата I (с двумя операндами)

Длина команд формата I и время их выполнения для всех возможных режи мов адресации приведены в Табл. 3.16.

Таблица 3.16. Время выполнения и длина команд формата I

Режим адресации

Число тактов

Длина команды

 

Пример

 

 

 

Источник

Приёмник

 

 

 

 

 

 

 

 

 

 

 

Rn

Rm

1

1

MOV

R5,R8

 

 

 

 

 

 

 

PC

2

1

BR

R9

 

 

 

 

 

 

 

x(Rm)

4

2

ADD

R5,4(R6)

 

 

 

 

 

 

 

EDE

4

2

XOR

R8,EDE

 

 

 

 

 

 

 

&EDE

4

2

MOV

R5,&EDE

 

 

 

 

 

 

@Rn

Rm

2

1

AND

@R4,R5

 

 

 

 

 

 

 

PC

2

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

MOV

@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

4(R4),6(R9)

 

 

 

 

 

 

 

&TONI

6

3

MOV

2(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

BR

&EDE

 

 

 

 

 

 

 

TONI

6

3

MOV

&EDE,TONI

 

 

 

 

 

 

 

x(Rm)

6

3

MOV

&EDE,0(SP)

 

 

 

 

 

 

 

&TONI

6

3

MOV

&EDE,&TONI

 

 

 

 

 

 

92 Глава 3. 16#битное RISC ЦПУ MSP430

3.4.5. Описание набора команд

Карта команд изображена на Рис. 3.20. Описание всех команд набора в сжа том виде приведено в Табл. 3.17.

000

040

080

0C0

100

140

180

 

1C0

200

240

280

2C0

300

340

380

3C0

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. Карта команд ядра.

Таблица 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*

 

Очистка бита C

0

C

0

CLRN*

 

Очистка бита N

0

N

0

CLRZ*

 

Очистка бита Z

0

Z

0

CMP(.B)

src,dst

Сравнение двух операндов

dst – src

 

 

 

 

 

 

 

 

 

3.4. Система команд 93

Таблица 3.17. Набор команд MSP430 (продолжение)

Мнемоника

Описание

Операция

V

N

Z

C

 

 

 

 

 

 

 

DADC(.B)* dst

Сложение бита переноса с операндом

dst + C dst (BCD)

 

 

(BCD арифметика)

 

 

 

 

 

 

 

 

 

 

 

 

 

DADD(.B)

src,dst

Сложение двух операндов с учётом

src + dst + C dst (BCD)

 

 

переноса (BCD арифметика)

 

 

 

 

 

 

 

 

 

 

 

 

 

DEC(.B)*

dst

Декремент операнда

dst – 1 dst

DECD(.B)* dst

Уменьшение операнда на 2

dst – 2 dst

DINT*

 

Запрещение прерываний

0 GIE

EINT*

 

Разрешение прерываний

1 GIE

INC(.B)*

dst

Инкремент операнда

dst +1 dst

INCD(.B)* dst

Увеличение операнда на 2

dst+2 dst

INV(.B)*

dst

Инвертирование операнда

.not.dst dst

JC/JHS

label

Переход, если бит C установлен / Пе

 

 

 

реход, если «выше или равно»

 

 

 

 

 

 

 

 

 

 

 

 

 

JEQ/JZ

label

Переход, если «равно» / Переход, если

 

 

 

бит Z установлен

 

 

 

 

 

 

 

 

 

 

 

 

 

JGE

label

Переход, если «больше или равно»

 

 

 

 

 

 

 

 

 

JL

label

Переход, если «меньше»

 

 

 

 

 

 

 

 

 

JMP

label

Безусловный переход

PC + 2 смещение PC

 

 

 

 

 

 

 

 

JN

label

Переход, если бит N установлен

 

 

 

 

 

 

 

 

 

JNC/JLO

label

Переход, если бит C не установлен /

 

 

 

Переход, если «ниже»

 

 

 

 

 

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

Вычитание заёма из операнда

dst + 0FFFFh + C dst

SETC*

 

Установка бита C

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

Вычитание операндов с учётом заёма

dst + .not.src + C dst

SWPB

dst

Обмен байтов

 

 

 

 

 

 

 

 

 

SXT

dst

Расширение знака

 

0

 

 

 

 

 

 

 

 

TST(.B)*

dst

Проверка операнда (на ноль)

dst + 0FFFFh + 1

0

XOR(.B)

src,dst

«Исключающее ИЛИ» операндов

src .xor. dst dst

 

 

 

 

 

 

 

 

* Эмулируемые команды

• Влияет на бит состояния

– Не влияет на бит состояния 0 Бит состояния сбрасывается

1 Бит состояния устанавливается

94 Глава 4. 16#битное RISC ЦПУ MSP430X

ГЛАВА 4

16CБИТНОЕ RISC ЦПУ MSP430X

В этой главе описывается усовершенствованное ЦПУ MSP430X, позволяю щее адресовать до 1 МБ памяти, его режимы адресации и набор команд. ЦПУ MSP430X реализовано во всех микроконтроллерах семейства, имеющих адресное пространство более 64 КБ.

4.1.Введение в ЦПУ

ЦПУ MSP430X обладает рядом возможностей, специально предназначенных для поддержки современных методов программирования, таких как вычисляе мые переходы, табличные вычисления, а также использование языков высокого уровня, в частности языка Си. Центральный процессор MSP430X может адресо вать до 1 МБ памяти без разбиения её на страницы. Кроме того, в ряде случаев ЦПУ MSP430X требуется меньше времени на обслуживание прерываний и вы полнение команд, чем MSP430. ЦПУ MSP430X полностью обратно совместимо с ЦПУ MSP430.

ЦПУ MSP430X имеет следующие особенности:

RISC архитектура;

ортогональная архитектура;

полная доступность регистров, включая счётчик команд, регистры состоя ния и указатель стека;

однотактные регистровые операции;

большой регистровый файл, уменьшающий количество обращений

к памяти;

20 битная шина адреса, обеспечивающая прямой доступ и ветвление во всём диапазоне адресов;

16 битная шина данных, позволяющая напрямую оперировать 2 байтными значениями;

генератор констант формирует шесть наиболее часто используемых значе ний, уменьшая размер кода;

прямой обмен данными между ячейками памяти без промежуточной записи в регистр;

однобайтная, двухбайтная и 20 битная адресация.

Блок схема ЦПУ MSP430X приведена на Рис. 4.1.

 

 

 

4.1. Введение в ЦПУ 95

MDB – Шина данных

 

Шина адреса – MAB

19

16

15

0

R0/PC

Счётчик команд

0

R1/SP

Указатель стека

0

 

R2/SR Регистр состояния

R3/CG2 Генератор констант

R4

Общего назначения

 

R5

Общего назначения

 

R6

Общего назначения

 

R7

Общего назначения

 

R8

Общего назначения

 

R9

Общего назначения

 

R10

Общего назначения

 

R11

Общего назначения

 

R12

Общего назначения

 

R13

Общего назначения

 

R14

Общего назначения

 

R15

Общего назначения

 

 

 

 

20

16

Ноль, Z

 

 

 

 

dst

src

 

 

 

 

 

 

 

 

Перенос, C

 

 

 

 

 

 

16/20Cбитное

 

 

MCLK

 

 

 

 

 

 

 

 

Переполнение, V

 

 

 

 

 

 

 

 

АЛУ

 

 

 

 

 

Отрицательное

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значение, N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.1. Блок схема ЦПУ MSP430X.

96 Глава 4. 16#битное RISC ЦПУ MSP430X

4.2.Прерывания

В ЦПУ MSP430X реализована такая же структура прерываний, что и в ЦПУ MSP430:

векторные прерывания, не требующие программного опроса;

таблица векторов располагается начиная с адреса 0FFFEh в сторону млад

ших адресов.

Работа системы прерываний обоих ЦПУ описана во 2 й главе настоящей кни ги (раздел 2.2 «Прерывания»). В таблице векторов прерываний содержатся 16 битные адреса, указывающие на нижнюю область памяти объёмом 64 КБ. Это оз начает, что точки входа во все процедуры обработки прерываний должны нахо диться в этом диапазоне адресов — даже в моделях с ЦПУ MSP430X.

Во время прерывания счётчик команд PC и регистр состояния SR сохраняют ся в стеке, как показано на Рис. 4.2. Для эффективного сохранения 20 битного значения счётчика команд биты 19:16 этого регистра автоматически добавляются к содержимому регистра SR, сохранённому в стеке. При выполнении команды RETI восстанавливается полное 20 битное значение счётчика команд, обеспечи вая возврат из обработчика прерывания по любому адресу из доступного диапазо на адресов.

 

 

 

 

SPold

 

 

Элемент n – 1

 

 

 

 

 

PC.15:0

SP

 

 

 

 

PC.19:16

SR.11:0

 

 

 

 

 

 

 

 

 

Рис. 4.2. Сохранение счётчика команд в стеке во время прерывания.

4.3.Регистры ЦПУ

Центральный процессор содержит шестнадцать регистров R0…R15. Регистры R0, R1, R2 и R3 имеют специальные функции. Регистры с R4 по R15 являются ра бочими регистрами общего назначения.

4.3.1. Счётчик команд (PC)

20 битный счётчик команд (PC/R0) указывает на следующую команду, кото рая будет выполняться. Каждая команда занимает в памяти чётное число байтов (два, четыре, шесть или восемь), и на это же значение инкрементируется счётчик команд. Выборка команд осуществляется пословно, при этом счётчик команд указывает на чётные адреса. Формат счётчика команд PC приведён на Рис. 4.3.

19

16

15

1

0

 

 

 

 

 

 

 

Биты счётчика команд с 19 го по 1 й

 

0

 

 

 

 

 

Рис. 4.3. Счётчик команд (PC).

4.3. Регистры ЦПУ 97

Счётчик команд может быть адресован всеми командами с использованием любого режима адресации:

MOV.W

#LABEL,PC

; Переход к адресу LABEL (младшие 64 КБ)

MOVA

#LABEL,PC

; Переход к адресу LABEL (вся адресуемая память (1 Мб))

MOV.W

LABEL,PC

; Переход к адресу, содержащемуся в LABEL (младшие 64 КБ)

MOV.W

@R14,PC

; Косвенный переход по адресу, содержащемуся

 

 

; в R14 (младшие 64 КБ)

ADDA

#4,PC

; Пропуск двух слов (вся адресуемая память (1 МБ))

Команды BR и CALL обнуляют четыре старших бита счётчика команд. То есть эти команды позволяют выполнять переход только в пределах младших 64 КБ ад ресов. Адреса, расположенные вне этого диапазона, могут быть достигнуты толь ко с помощью команд BRA или CALLA. Кроме того, любая команда, непосред ственно модифицирующая PC, делает это в соответствии с используемым режи мом адресации. Например, команда MOV.W #value,PC сбросит 4 старших бита счётчика команд, поскольку имеет суффикс .W.

Счётчик команд автоматически сохраняется в стеке при выполнении команд CALL или CALLA, а также при переходе к процедуре обработки прерывания. Содер жимое стека с адресом возврата после выполнения команды CALLA показано на Рис. 4.4. Команда CALL сохраняет только биты 15:0 счётчика команд.

SPold

 

Элемент n

 

PC.19:16

SP

PC.15:0

Рис. 4.4. Сохранение счётчика команд в стеке командой CALLA.

Команда RETA восстанавливает биты 19:0 счётчика команд и увеличивает на 4 указатель стека. Команда RET восстанавливает биты 15:0 счётчика команд и уве личивает указатель стека на 2.

4.3.2. Указатель стека (SP)

20 битный указатель стека (SP/R1) используется ЦПУ для сохранения адре сов возврата из подпрограмм и прерываний. При этом он изменяется по предде крементной/постинкрементной схеме. Кроме того, указатель стека может ис пользоваться со всеми командами и любыми режимами адресации. Формат ука зателя стека SP приведён на Рис. 4.5. Указатель стека инициализируется (устанавливается на заданную ячейку ОЗУ) пользователем и выравнивается по чётным адресам.

19

1

0

Биты указателя стека с 19 го по 1 й

 

0

 

 

 

Рис. 4.5. Указатель стека.

98 Глава 4. 16#битное RISC ЦПУ MSP430X

Использование стека проиллюстрировано на Рис. 4.6. На Рис. 4.7 показано использование стека при сохранении 20 битных адресов.

Адрес

 

 

PUSH #0123h

 

POP R8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0xxxh

I1

 

 

I1

 

 

I1

 

 

 

 

 

 

 

 

 

 

 

 

0xxxh – 2

I2

 

 

I2

 

 

I2

 

 

 

 

 

SP

 

 

 

 

 

SP

0xxxh – 4

I3

 

I3

 

SP

I3

 

 

 

 

0xxxh – 6

 

 

 

0123h

 

 

 

 

 

 

 

 

 

 

0xxxh – 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.6. Использование стека.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SP old

 

 

Элемент n – 1

 

 

 

 

 

 

 

 

 

 

 

 

Эл т n.19:16

 

 

 

SP

 

 

 

 

 

 

 

 

 

Эл т n.15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.7. Результат выполнения команды PUSHX.A.

MOV.W

2(SP),R6

; Элемент стека I2 $> R6

MOV.W

R7,0(SP)

; Перезаписать значение на вершине стека (TOS)

 

 

; содержимым R7

 

 

 

PUSH

#0123h

; Поместить число 0123h в стек

POP

R8

; R8 = 0123h

 

 

 

К особым случаям относится использование указателя стека SP в качестве ар гумента команд PUSH и POP. Эти ситуации показаны и объяснены на Рис. 4.8.

 

 

PUSH SP

 

 

POP SP

SP old

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SP 1

 

SP 1

 

SP 2

 

SP 1

 

 

 

 

 

 

 

 

 

 

 

 

Указатель стека изменяется

Указатель стека не изменяется после

после выполнения команды

выполнения команды POP SP. Эта

PUSH SP

 

 

команда помещает SP1 в указатель

 

 

 

 

стека (SP2 = SP1).

Рис. 4.8. Выполнение последовательности команд PUSH SP POP SP.

4.3. Регистры ЦПУ 99

4.3.3. Регистр состояния (SR)

16 битный регистр состояния (SR/R2) может выступать в качестве регистра источника или регистра приёмника только в командах, оперирующих двухбайт ными значениями, и только при использовании режима регистровой адресации. Прочие комбинации режимов адресации используются для поддержки генерато ра констант. Формат регистра состояния SR приведён на Рис. 4.9. Нельзя записы вать в регистр SR 20 байтные значения — результат этой операции будет непред сказуемым.

15

9

8

7

 

 

 

 

 

0

 

 

 

 

 

Зарезерировано

V

 

SCG1

SCG0

OSC

CPU

GIE

N

Z

C

 

 

 

 

 

 

 

 

 

 

OFF

OFF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rw – 0

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.9. Формат регистра состояния.

 

 

 

 

 

 

Назначение битов регистра SR описано в Табл. 4.1.

 

 

 

 

 

 

Таблица 4.1. Биты регистра состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бит

 

 

 

Описание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

Флаг переполнения. Этот бит устанавливается, если результат арифметической операции

 

 

 

выходит за границы допустимых значений для знаковых величин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADD(.B), ADDX(.B,.A),

Устанавливается, когда:

 

 

 

 

 

 

 

 

 

ADDC(.B), ADDCX(.B,.A),

Положительное + Положительное = Отрицательное,

 

 

 

ADDA

Отрицательное + Отрицательное = Положительное,

 

 

 

 

в противном случае сбрасывается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUB(.B), SUBX(.B,.A),

Устанавливается, когда:

 

 

 

 

 

 

 

 

 

SUBC(.B),SUBCX(.B,.A),

Положительное – Отрицательное = Отрицательное,

 

 

 

SUBA, CMP(.B),

Отрицательное – Положительное = Положительное,

 

 

 

CMPX(.B,.A), CMPA

в противном случае сбрасывается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SCG1

Системный тактовый генератор 1. Когда этот бит установлен, генератор DCO выключен,

 

 

 

если сигнал DCOCLK не используется для формирования сигналов MCLK или SMCLK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SCG0

Системный тактовый генератор 0. Когда этот бит установлен, выключается схема авто

 

 

 

подстройки частоты модуля тактирования FLL+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OSCOFF

Выключение генератора. Когда этот бит установлен, кварцевый генератор LFXT1 выклю

 

 

 

чен, если сигнал LFXT1CLK не используется для формирования сигналов MCLK или

 

 

 

SMCLK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CPUOFF

Выключение ЦПУ. Когда этот бит установлен, ЦПУ выключено

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GIE

Общий бит разрешения прерываний. Когда этот бит установлен, маскируемые прерыва

 

 

 

ния разрешены. После сброса все маскируемые прерывания запрещены

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

Флаг отрицательного результата. Этот бит устанавливается, если результат арифметичес

 

 

 

кой операции отрицателен, и сбрасывается, если результат положителен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

Флаг нуля. Этот бит устанавливается, если результат арифметической операции равен ну

 

 

 

лю, и сбрасывается в противном случае

 

 

 

 

 

 

 

 

CФлаг переноса. Этот бит устанавливается, если при выполнении арифметической опера ции возникает перенос, и сбрасывается, если переноса не возникает

100 Глава 4. 16#битное RISC ЦПУ MSP430X

4.3.4. Регистры генератора констант CG1 и CG2

С помощью регистров генератора констант R2 и R3 генерируются шесть часто используемых значений. Выбор конкретной константы осуществляется измене нием режима адресации регистра источника (As) в соответствии с Табл. 4.2.

Таблица 4.2. Значения, формируемые генератором констант

Регистр

As

Константа

Примечания

 

 

 

 

R2

00

Регистровый режим адресации

 

 

 

 

R2

01

(0)

Абсолютный режим адресации

 

 

 

 

R2

10

00004h

+4, операции над битами

 

 

 

 

R2

11

00008h

+8, операции над битами

 

 

 

 

R3

00

00000h

0, операции над словами

 

 

 

 

R3

01

00001h

+1

 

 

 

 

R3

10

00002h

+2, операции над битами

 

 

 

 

R3

11

FFh, FFFFh, FFFFFh

–1, операции над словами

 

 

 

 

Преимущества генератора констант:

не требуются особые команды;

не требуется дополнительное слово памяти программ для хранения конс танты;

не требуется обращаться к памяти программ для загрузки константы. Ассемблер автоматически использует генератор констант, если любая из шес

ти указанных констант служит в качестве непосредственного операнда источни ка. Если регистры R2 и R3 используются в режиме генерации констант, их нельзя адресовать явно — они выступают только в качестве источников.

Генератор констант — расширение набора команд

Система команд MSP430 содержит всего 27 инструкций. Однако наличие ге нератора констант позволяет ассемблеру MSP430 использовать 24 дополнитель ных (эмулируемых) команд. К примеру, однооперандная команда:

CLR dst

эмулируется двухоперандной командой, занимающей в памяти столько же места:

MOV R3,dst

в которой ассемблер заменил константу #0 обращением к регистру R3 с As = 00. Команда

INC dst

заменяется командой

ADD 0(R3),dst