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

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

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

4.5. Команды MSP430 и MSP430X 121

4.5.Команды MSP430 и MSP430X

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

Возможны три подхода к применению команд MSP430 и MSP430X:

Использовать только команды MSP430. Единственное исключение — ко манды CALLA и RETA. Этот вариант возможен при выполнении двух простых условий:

все константы, переменные, массивы, таблицы и данные располагаются в нижней области памяти размером 64 КБ. Это позволит использовать для доступа ко всем данным команды MSP430 с 16 битной адресацией. Не требуются указатели для хранения 20 битных адресов;

все локальные константы, используемые в подпрограммах, располагаются сразу же после кода подпрограммы. Это позволит задействовать относи тельный режим адресации с 16 битным смещением для обращения к па мяти в диапазоне адресов PC ±32 КБ.

Использовать только команды MSP430X. Недостатки такого подхода — меньшая скорость выполнения программы из за использования дополни тельных тактов ЦПУ и увеличенный размер кода из за наличия у всех двухоперандных команд обязательного слова расширения.

Использовать команды обоих типов, в зависимости от ситуации. Описание команд MSP430 и MSP430X приводится в следующих подразделах.

4.5.1. Команды MSP430

Команды MSP430 могут использоваться независимо от того, где располагает ся программа — в нижней 64 КБ области памяти или за её пределами. Единствен ным исключением являются команды CALL и RET, область действия которых ог раничена младшими 64 КБ памяти. Чтобы подпрограммы можно было размещать в пределах всего адресного пространства, в набор команд ЦПУ MSP430X были добавлены две команды: CALLA и RETA.

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

Формат команды MSP430 с двумя операндами приведён на Рис. 4.22. На этом же рисунке показаны дополнительные слова, определяющие источник и приём ник для индексного, относительного, абсолютного и непосредственного режимов адресации. Краткое описание всех 12 двухоперандных команд MSP430 приведено в Табл. 4.4.

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

15

12

 

11

8

 

7

6

5

4

 

 

 

 

0

 

 

 

 

 

 

Код операции

 

 

Rsrc

 

 

Ad

B/W

As

 

 

 

 

Rdst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Источник или приёмник 15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приёмник 15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.22. Формат команды MSP430 с двумя операндами.

 

 

 

 

 

 

 

 

Таблица 4.4. Команды MSP430 с двумя операндами

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мнемоника

S reg, D reg

 

 

Операция

 

 

 

 

Биты состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

 

N

Z

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MOV(.B)

src,dst

 

src dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADD(.B)

src,dst

 

src + dst dst

 

 

 

 

 

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADDC(.B)

src,dst

 

src + dst + C dst

 

 

 

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUB(.B)

src,dst

 

dst + .not.src + 1 dst

 

 

 

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SUBC(.B)

src,dst

 

dst + .not.src + C dst

 

 

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CMP(.B)

src,dst

 

dst – src

 

 

 

 

 

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DADD(.B)

src,dst

 

src + dst + C dst (BCD арифметика)

 

 

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BIT(.B)

src,dst

 

src .and. dst

 

 

 

 

 

 

 

0

 

*

*

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BIC(.B)

src,dst

 

not.src .and. dst dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BIS(.B)

src,dst

 

src .or. dst dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XOR(.B)

src,dst

 

src .xor. dst dst

 

 

 

 

 

 

 

*

 

*

*

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AND(.B)

src,dst

 

src .and. dst dst

 

 

 

 

 

0

 

*

*

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

Команды с одним операндом (формат II)

Формат команд MSP430 с одним операндом (за исключением команды RETI) приведён на Рис. 4.23. На этом же рисунке показано дополнительное слово, опре деляющее операнд приёмник для индексного, относительного, абсолютного и непосредственного режимов адресации. Краткое описание всех семи одноопе рандных команд MSP430 приведено в Табл. 4.5.

15

7

6

5

4

0

Код операции

 

B/W

 

Ad

Rdst

 

 

 

 

 

 

Приёмник 15:0

Рис. 4.23. Формат команды MSP430 с одним операндом.

4.5. Команды MSP430 и MSP430X 123

Таблица 4.5. Команды MSP430 с одним операндом

Мнемоника

S reg,

Операция

 

Биты состояния

 

 

 

 

 

 

 

 

 

 

 

D reg

V

 

N

Z

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RRC(.B)

dst

C MSB .......LSB C

*

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

 

RRA(.B)

dst

MSB MSB ....LSB C

0

 

*

*

 

*

 

 

 

 

 

 

 

 

 

 

PUSH(.B)

src

SP – 2 SP, src @SP

 

 

 

 

 

 

 

 

 

 

 

SWPB

dst

Перестановка байтов местами

 

 

 

 

 

 

 

 

 

 

 

CALL

dst

Вызов подпрограммы в нижней 64 КБ области памяти

 

 

 

 

 

 

 

 

 

 

 

 

 

RETI

dst

TOS SR, SP + 2 SP

*

 

*

*

 

*

 

 

 

TOS PC,SP + 2 SP

 

 

 

 

 

 

 

 

 

 

 

 

 

SXT

dst

Бит 7 Бит 8........Бит 15

0

 

*

*

 

 

 

 

z

 

 

 

 

 

 

 

 

 

 

 

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

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

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

Команды перехода

Формат команд перехода MSP430 и MSP430X приведён на Рис. 4.24. Величи на смещения в словах (10 битное число со знаком) умножается на два, расширя ется до 20 битного значения и прибавляется к 20 битному счётчику команд. Это позволяет выполнять переход в диапазоне от –511 до +512 слов относительно те кущего значения счётчика в пределах всего адресного пространства. Команды пе рехода не влияют на биты состояния. Краткое описание всех восьми команд пе рехода приведено в Табл. 4.6.

15

13

12

10

9

8

0

Код операции

Условие

 

S

 

10 битное смещение со знаком

 

 

 

 

 

 

 

 

 

Рис. 4.24. Формат команд перехода.

Таблица 4.6. Команды перехода

 

 

 

 

Мнемоника

S reg, D reg

 

Операция

 

 

 

 

JEQ/JZ

Метка

 

Переход к метке, если бит нуля (Z) установлен

 

 

 

 

JNE/JNZ

Метка

 

Переход к метке, если бит нуля (Z) сброшен

 

 

 

 

JC

Метка

 

Переход к метке, если бит переноса (C) установлен

 

 

 

 

JNC

Метка

 

Переход к метке, если бит переноса (C) сброшен

 

 

 

 

JN

Метка

 

Переход к метке, если бит отрицательного значения (N) установлен

 

 

 

 

JGE

Метка

 

Переход к метке, если (N .XOR. V) = 0

 

 

 

 

JL

Метка

 

Переход к метке, если (N .XOR. V) = 1

 

 

 

 

JMP

Метка

 

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

 

 

 

 

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

Эмулируемые команды — это команды, которые облегчают создание и чтение кода, но не имеют собственных кодов операций. Ассемблер автоматически заме

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

няет такие команды эквивалентными командами ядра. Использование эмулируе мых команд не приводит к увеличению размера кода или снижению производи тельности. Полный список эмулируемых команд приведён в Табл. 4.7.

Таблица 4.7. Эмулируемые команды

Команда

Описание

Эмуляция

V

N

Z

C

 

 

 

 

 

 

 

 

 

ADC(.B)

dst

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

ADDC(.B)

#0,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

BR

dst

Переход по заданному адресу

MOV

dst,PC

 

 

 

 

 

 

 

 

 

CLR(.B)

dst

Очистка операнда

MOV(.B)

#0,dst

 

 

 

 

 

 

 

 

 

CLRC

 

Очистка бита переноса

BIC

#1,SR

0

 

 

 

 

 

 

 

 

 

CLRN

 

Очистка бита отрицательного значения

BIC

#4,SR

0

 

 

 

 

 

 

 

 

 

CLRZ

 

Очистка бита нуля

BIC

#2,SR

0

 

 

 

 

 

 

 

 

 

DADC(.B)

dst

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

DADD(.B)

#0,dst

*

*

*

*

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DEC(.B)

dst

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

SUB(.B)

#1,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

DECD(.B)

dst

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

SUB(.B)

#2,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

DINT

 

Общее запрещение прерываний

BIC

#8,SR

 

 

 

 

 

 

 

 

 

EINT

 

Общее разрешение прерываний

BIS

#8,SR

 

 

 

 

 

 

 

 

 

INC(.B)

dst

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

ADD(.B)

#1,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

INCD(.B)

dst

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

ADD(.B)

#2,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

INV(.B)

dst

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

XOR(.B)

#$1,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

NOP

 

Нет операции

MOV

R3,R3

 

 

 

 

 

 

 

 

 

POP

dst

Извлечение операнда из стека

MOV

@SP+,dst

 

 

 

 

 

 

 

 

 

RET

 

Возврат из подпрограммы

MOV

@SP+,PC

 

 

 

 

 

 

 

 

 

RLA(.B)

dst

Арифметический сдвиг влево

ADD(.B)

dst,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

RLC(.B)

dst

Сдвиг влево через перенос

ADDC(.B)

dst,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

SBC(.B)

dst

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

SUBC(.B)

#0,dst

*

*

*

*

 

 

 

 

 

 

 

 

 

SETC

 

Установка бита переноса

BIS

#1,SR

1

 

 

 

 

 

 

 

 

 

SETN

 

Установка бита отрицательного

BIS

#4,SR

1

 

 

значения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SETZ

 

Установка бита нуля

BIS

#2,SR

1

 

 

 

 

 

 

 

 

 

TST(.B)

dst

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

CMP(.B)

#0,dst

0

*

*

1

 

 

 

 

 

 

 

 

 

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

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

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

Время выполнения и размер команд MSP430

Число тактов ЦПУ, требующееся для выполнения той или иной команды, за висит от формата команды и от используемого режима адресации — но не от собственно инструкции. Приведённые далее цифры относятся к тактовому сиг налу MCLK.

4.5. Команды MSP430 и MSP430X 125

Сброс, подпрограммы и прерывания

Число тактов ЦПУ, требуемое для обслуживания сброса, прерываний и под программ, указано в Табл. 4.8.

Таблица 4.8. Обслуживание сброса, прерываний и подпрограмм

 

 

 

Действие

Число тактов

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

 

 

 

Возврат из прерывания (RETI)

3*

1

Возврат из подпрограммы (RET)

3

1

 

 

 

Принятие прерывания (число тактов между появлением за

5**

проса и выполнением 1 й команды обработчика)

 

 

Сброс от сторожевого таймера

4

 

 

 

 

Аппаратный сброс

 

 

4

(RST/NMI)

 

 

 

 

*

В ЦПУ MSP430 — 5.

 

 

**

В ЦПУ MSP430 — 6.

 

 

 

 

 

 

 

 

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

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

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

Режим

Количество тактов

 

Длина

Пример

 

 

 

адресации

RRA, RRC, SWPB, SXT

PUSH

CALL

команды

 

 

 

 

Rn

1

3

3*

1

SWPB

R5

@Rn

3

3*

4

1

RRC

@R9

@Rn+

3

3*

4**

1

SWPB

@R10+

#N

Не применимо

3*

4**

2

CALL

#LABEL

X(Rn)

4

4**

4**

2

CALL

2(R7)

EDE

4

4**

4**

2

PUSH

EDE

&EDE

4

4**

4**

2

SXT

&EDE

* В ЦПУ MSP430 — 4.

**В ЦПУ MSP430 — 5. Также время выполнения равно 5 тактам для индексного режима адресации, если Rn = SP.

Время выполнения и длина команд формата III (команды перехода)

Все команды перехода занимают одно слово в памяти и выполняются за два такта, независимо от того, был или не был выполнен переход.

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

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

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

Таблица 4.10. Время выполнения и длина команд MSP430 формата 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

* Для команд MOV, BIT и CMP требуется на один такт меньше.

4.5.2. Команды MSP430X

Расширенный набор команд MSP430X позволяет ЦПУ MSP430X в полной мере использовать доступное адресное пространство, определяемое 20 битной шиной адреса. Большинство команд MSP430X требуют ещё одного слова для хра нения кода команды, так называемого слова расширения. Некоторым из команд расширенного набора дополнительного слова не требуется — это будет отдельно указано в описании таких команд. Все адреса, смещения и непосредственные значения, которым предшествует слово расширения, являются 20 битными.

4.5. Команды MSP430 и MSP430X 127

Предусмотрены слова расширения двух типов:

для регистрового режима адресации в командах формата II (оба операнда) и формата I;

для всех остальных сочетаний режимов адресации.

Слово расширения для регистрового режима адресации

Формат слова расширения для регистрового режима адресации приведён на Рис. 4.25, а назначение отдельных его битов описано в Табл. 4.11. Пример коман ды, использующей слово расширения такого формата, показан далее на Рис. 4.27.

15

12

11

10

9

8

7

6

5

4

3

0

0001

 

1

 

00

ZC

#

A/L

0

0

 

(n – 1)/Rn

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.25. Слово расширения для регистрового режима адресации.

Таблица 4.11. Биты слова расширения для регистрового режима адресации

Бит

 

 

Описание

 

 

15:11

Код операции слова расширения. Для слова расширения зарезервированы значения с 1800h

 

до 1FFFh

 

 

10:9

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

 

 

 

 

 

 

ZC

Нулевой бит переноса:

 

 

 

0 — исполняемая команда использует текущее значение бита переноса C.

 

1 — исполняемая команда использует бит переноса, как если бы он был сброшен. Новое значение

 

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

 

 

 

 

#

Бит повтора:

 

 

 

0 — число повторений команды задаётся битами 3:0 слова расширения.

 

1 — число повторений команды определяется значением четырёх младших битов Rn.

 

См. описание битов 3:0.

 

 

A/L

Бит разрядности данных. Вместе с битом B/W команды MSP430 определяет размер данных,

 

используемых в команде:

 

 

 

A/L

B/W

Размер

 

0

0

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

 

0

1

20 битные значения

 

1

0

16 битные значения

 

1

1

8 битные значения

5:4

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

 

 

 

 

 

 

3:0

Число повторений:

 

 

 

# = 0 — эти биты определяют число повторений n (в битах содержится значение n – 1)

 

# = 1 — эти биты определяют регистр ЦПУ, биты 3:0 которого содержат число повторов.

 

В битах Rn.3:0 содержится значение n – 1.

Слово расширения для других режимов адресации

Формат слова расширения для остальных режимов адресации приведён на Рис. 4.26, а назначение отдельных битов описано в Табл. 4.12. Пример команды, использующей слово расширения такого формата, показан на Рис. 4.28.

15

 

 

12

11

10

7

6

5

4

3

0

0

0

0

1

1

Биты 19:16 источника

A/L

0

0

Биты 19:16 приёмника

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.26. Слово расширения для режимов адресации, отличных от регистрового.

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

Таблица 4.12. Биты слова расширения для режимов адресации, отличных от регистрового

Бит

 

 

Описание

 

 

15:11

Код операции слова расширения. Для слова расширения зарезервированы значения

 

с 1800h до 1FFFh

 

 

 

 

Биты 19:16

Старшие 4 бита 20 битного значения источника. В зависимости от режима адресации

источника

операнда источника в этих битах может содержаться 4 старших бита непосредственно

 

го значения, смещения или абсолютного адреса

 

 

A/L

Бит разрядности данных. Вместе с битом B/W команды MSP430 определяет размер дан

 

ных, используемых в команде:

 

 

A/L

B/W

Размер

 

0

0

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

 

0

1

20 битные значения

 

1

0

16 битные значения

 

1

1

8 битные значения

 

 

 

 

5:4

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

 

 

 

 

Биты 19:16

Старшие 4 бита 20 битного значения приёмника. В зависимости от режима адресации

приёмника

операнда приёмника в этих битах может содержаться 4 старших бита смещения или аб

 

солютного адреса

 

 

 

 

 

 

Примечание. Значения битов B/W и A/L для команд SWPBX и SXTX

Для команд SWPBX и SXTX используются следующие установки битов B/W и A/L:

A/L

B/W

 

0

0

SWPBX.A, SXTX.A

0

1

неприменимо

1

0

SWPBX.W, SXTX.W

11 неприменимо

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

1

1

 

00

 

ZC

#

A/L

Rsvd

 

(n – 1)/Rn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

Rsrc

 

 

Ad

B/W

 

As

 

 

Rdst

 

XORX.A

R9,R8

 

 

 

 

1: Число повторений

 

 

 

 

 

вбитах 3:0

0:Использовать

 

 

 

 

 

 

бит переноса

 

 

01: 20 битные данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

1

 

0

 

0

0

 

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14(XOR)

 

 

9

 

 

 

0

 

1

0

 

8(R8)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команда XORX

 

 

Источник R9

 

 

 

 

 

 

 

 

 

Приёмник R8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

 

 

адресации приёмника

адресации источника

Рис. 4.27. Пример расширенной команды, использующей регистровый режим адресации.

4.5. Команды MSP430 и MSP430X 129

15

14

13

12

11

10

9

8

7

 

6

5

4

3

2

1

0

0

0

0

1

1

 

Источник 19:16

 

A/L

 

Rsvd

Приёмник 19:16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

Rsrc

 

Ad

 

B/W

 

As

 

 

Rdst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Источник 15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приёмник 15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XORX.A

#12345h, 45678h(R15)

 

X(Rn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01: 20 битные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@PC+

 

 

 

 

 

 

 

 

 

 

 

 

слова

 

 

 

 

18xx слово расширения

 

12345h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

1

 

 

1

 

 

0

 

0

 

 

4

 

 

14 (XOR)

 

 

0 (PC)

 

1

 

1

 

3

 

15 (R15)

 

 

 

 

Младшие биты непосредственного операнда: 2345h

 

 

 

 

 

 

 

Младшие биты смещения приёмника: 5678h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.28. Пример расширенной команды, использующей непосредственный и индексный режимы адресации.

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

Все команды с двумя операндами имеют расширенные версии, перечислен ные в Табл. 4.13.

Таблица 4.13. Команды MSP430X с двумя операндами

Мнемоника

Операнды

Операция

 

Биты состояния

 

 

 

 

 

V

N

Z

C

 

 

 

MOVX(.B,.A)

src,dst

src dst

 

 

 

 

 

 

 

ADDX(.B,.A)

src,dst src + dst dst

*

*

*

*

 

 

 

 

 

 

 

 

ADDCX(.B,.A)

src,dst src + dst + C dst

*

*

*

*

 

 

 

 

 

 

 

 

SUBX(.B,.A)

src,dst dst + .not.src + 1 dst

*

*

*

*

 

 

 

 

 

 

 

 

SUBCX(.B,.A)

src,dst dst + .not.src + C dst

*

*

*

*

 

 

 

 

 

 

 

 

 

CMPX(.B,.A)

src,dst

dst – src

*

*

*

*

 

 

 

 

 

 

 

 

DADDX(.B,.A)

src,dst src + dst + C dst (BCD арифметика)

*

*

*

*

 

 

 

 

 

 

 

 

 

 

 

BITX(.B,.A)

src,dst

src .and. dst

0

*

*

 

 

 

 

 

z

 

 

 

 

 

 

BICX(.B,.A)

src,dst not.src .and. dst dst

 

 

 

 

 

 

BISX(.B,.A)

src,dst src .or. dst dst

 

 

 

 

 

 

 

 

 

XORX(.B,.A)

src,dst src .xor. dst dst

*

*

*

 

 

 

 

 

 

z

 

 

 

 

 

 

 

 

 

ANDX(.B,.A)

src,dst src .and. dst dst

0

*

*

 

 

 

 

 

z

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

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

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

Возможные форматы расширенных команд с двумя операндами показаны на

Рис. 4.29.

Если 20 битный адрес операнда источника или операнда приёмника распо ложен не в регистре ЦПУ, а в памяти, то для хранения этого адреса используется два слова, как показано на Рис. 4.30.

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

15

14

13

 

12

11

10

9

8

7

6

5

4

3

 

 

 

0

0

 

0

0

 

1

1

0

 

0

ZC

#

A/L

0

 

0

 

n – 1/Rn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

 

src

 

0

B/W

0

 

0

 

 

dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

 

1

1

 

 

src.19:16

 

A/L

0

 

0

0

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

 

 

src

 

Ad

B/W

 

As

 

 

dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

src.15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

 

1

1

0

 

0

0

0

A/L

0

 

0

 

dst.19:16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

 

src

 

Ad

B/W

 

As

 

 

dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dst.15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

 

1

1

 

 

src.19:16

 

A/L

0

 

0

 

dst.19:16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код операции

 

 

src

 

Ad

B/W

 

As

 

 

dst

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

src.15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dst.15:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.29. Форматы расширенных команд с двумя операндами.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Адрес + 2

0 ................................................................................

 

 

 

 

 

 

 

 

 

 

0

 

19:16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес

 

 

 

 

 

 

Биты 15:0 операнда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.30. Хранение 20 битных адресов в памяти.