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

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

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

 

 

 

 

 

 

 

 

 

 

3.3. Режимы адресации 41

 

 

 

 

 

 

 

 

 

 

 

 

3.3.3. Относительный режим адресации

 

 

 

 

 

Относительный режим адресации описан в Табл. 3.6.

 

Таблица 3.6. Описание относительного режима адресации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ассемблерный код

 

Содержимое ПЗУ

 

 

 

 

 

 

 

 

 

 

 

MOV EDE,TONI

 

 

 

MOV X(PC),Y(PC)

 

 

 

 

 

 

 

 

X = EDE PC

 

 

 

 

 

 

 

 

 

 

 

 

Y = TONI PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина

 

Два или три слова

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

Пересылка значения с исходного адреса EDE (содержимое PC + X) по адресу на

 

 

значения TONI (содержимое PC + Y). Слова, расположенные после команды, со

 

 

держат разности между PC и адресами источника или приёмника. Ассемблер авто

 

 

матически вычисляет смещения X и Y и вставляет их в код. При использовании

 

 

относительного режима адресации счётчик команд автоматически инкрементиру

 

 

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

 

 

команды

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

Допускается для источника и приёмника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример

 

MOV

EDE,TONI ; Адрес источника EDE = 0F016h

 

 

 

 

 

; Адрес приёмника TONI = 01114h

 

 

 

 

 

 

 

 

 

 

 

До операции

 

 

 

После операции

 

Адресное

 

Регистры

 

 

Адресное

Регистры

пространство

пространство

0FF16h

 

 

 

 

 

 

0FF16h

 

 

0xxxxh

 

PC

 

 

 

 

 

 

 

 

011FEh

 

 

 

 

 

 

011FEh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF14h

0F102h

 

 

 

 

0FF14h

 

 

0F102h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF12h

04090h

 

PC

0FF12h

 

 

04090h

 

 

 

 

 

 

 

0FF14h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0F018h

0xxxxh

 

 

+0F102h

0F018h

 

 

0xxxxh

 

 

 

 

 

 

 

0F016h

 

 

 

 

 

 

 

0F016h

0A123h

 

0F016h

 

 

0A123h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0F014h

0xxxxh

 

 

 

 

0F014h

 

 

0xxxxh

 

 

 

 

 

 

 

0FF16h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01116h

0xxxxh

 

 

+011FEh

01116h

 

 

0xxxxh

 

 

 

 

 

 

 

01114h

 

 

 

 

 

 

 

01114h

05555h

 

01114h

 

 

0A123h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01112h

0xxxxh

 

 

 

 

01112h

 

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

Абсолютный режим адресации описан в Табл. 3.7.

Таблица 3.7. Описание абсолютного режима адресации

 

 

Ассемблерный код

 

 

Содержимое ПЗУ

 

 

 

 

 

 

 

 

 

MOV &EDE,&TONI

 

 

MOV X(0),Y(0)

 

 

 

 

 

 

 

X = EDE

 

 

 

 

 

 

 

 

 

 

 

Y = TONI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина

 

Два или три слова

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

Пересылка значения с исходного адреса EDE по адресу назначения TONI. Слова,

 

 

 

расположенные после команды, содержат абсолютные значения адресов. При ис

 

 

 

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

 

 

 

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

 

 

 

следующей команды

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

 

Допускается для источника и приёмника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример

 

MOV

&EDE,&TONI

; Адрес источника EDE = 0F016h

 

 

 

 

 

; Адрес приёмника TONI = 01114h

 

 

 

 

 

 

 

 

 

До операции

 

После операции

 

Адресное

Регистры

 

 

 

Адресное

Регистры

пространство

 

пространство

 

 

 

 

 

 

 

 

 

0xxxxh

 

PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF16h

 

01114h

 

 

0FF16h

 

 

01114h

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF14h

 

0F016h

 

 

0FF14h

 

 

0F016h

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF12h

 

04292h

PC

 

0FF12h

 

 

04292h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0F018h

 

0xxxxh

 

 

0F018h

 

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

0F016h

 

0A123h

 

 

0F016h

 

 

0A123h

 

 

 

 

 

 

 

 

 

 

 

 

 

0F014h

 

0xxxxh

 

 

0F014h

 

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01116h

 

 

 

 

 

01116h

 

 

 

 

 

 

0xxxxh

 

 

 

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

01114h

 

01234h

 

 

01114h

 

 

0A123h

 

 

 

 

 

 

 

 

 

 

 

 

 

01112h

 

0xxxxh

 

 

01112h

 

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.3. Режимы адресации 43

3.3.5. Косвенный регистровый режим адресации

Косвенный регистровый режим адресации описан в Табл. 3.8.

Таблица 3.8. Описание косвенного регистрового режима адресации

 

 

Ассемблерный код

 

 

Содержимое ПЗУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MOV @R10,0(R11)

 

 

 

 

MOV @R10,0(R11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина

 

Одно или два слова

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

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

 

 

 

(содержится в R11). Содержимое регистров не изменяется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

Допускается только для операнда источника. Для операнда приёмника использу

 

 

 

ется 0(Rd)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример

 

MOV

@R10,0(R11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

До операции

 

 

 

 

После операции

 

 

 

Адресное

 

Регистры

 

Адресное

Регистры

пространство

 

 

 

 

пространство

 

 

0FF16h

 

0xxxxh

 

 

 

 

 

 

0FF16h

 

0xxxxh

 

PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0000h

 

 

R10

 

0FA33h

 

 

0000h

 

R10

0FA33h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF14h

04AEBh

 

PC R11

002A7h

 

0FF14h

 

04AEBh

 

R11

002A7h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FF12h

 

0xxxxh

 

 

 

 

 

 

0FF12h

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FA34h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0xxxxh

 

 

 

 

 

 

0FA34h

 

0xxxxh

 

 

 

 

0FA32h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

05BC1h

 

 

 

 

 

 

0FA32h

 

05BC1h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FA30h

 

0xxxxh

 

 

 

 

 

 

0FA30h

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

002A8h

 

 

 

 

 

 

 

 

 

002A8h

 

 

 

 

 

 

 

0xxh

 

 

 

 

 

 

 

0xxh

 

 

 

 

002A7h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

012h

 

 

 

 

 

 

002A7h

 

05Bh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

002A6h

 

0xxh

 

 

 

 

 

 

002A6h

 

0xxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

3.3.6.Косвенный регистровый режим адресации с автоинкрементом

Косвенный регистровый режим адресации с автоинкерментом описан в Табл. 3.9.

Таблица 3.9. Описание косвенного регистрового режима адресации с автоинкрементом

 

Ассемблерный код

 

Содержимое ПЗУ

 

 

 

 

 

 

 

 

 

 

 

 

 

MOV @R10+,0(R11)

 

 

MOV @R10+,0(R11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина

 

Одно или два слова.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

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

 

 

(содержится в R11). После выборки пересылаемого значения содержимое R10 уве

 

 

личивается на 1 (при однобайтной операции) или на 2 (при двухбайтной операции),

 

 

указывая на следующий адрес. Эта команда полезна при реализации табличных вы

 

 

числений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

Допускается только для операнда источника. Для операнда приёмника использу

 

 

ется 0(Rd) и добавляется вторая команда INC Rd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример

 

MOV

@R10+,0(R11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

До операции

 

 

После операции

 

 

 

Адресное

Регистры

 

Адресное

 

Регистры

пространство

 

 

пространство

 

 

 

 

 

 

 

 

 

 

PC

 

 

 

 

 

 

 

 

 

 

 

 

0FF18h

0xxxxh

 

 

 

0FF18h

0xxxxh

 

 

 

0FF16h

00000h

R10

0FA32h

 

0FF16h

00000h

 

R10

0FA34h

 

 

 

 

 

 

 

 

 

 

 

 

0FF14h

04ABBh

PC R11

010A8h

 

0FF14h

04ABBh

 

R11

010A8h

 

 

 

 

 

 

 

 

 

 

 

 

0FF12h

0xxxxh

 

 

 

0FF12h

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FA34h

0xxxxh

 

 

 

0FA34h

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FA32h

05BC1h

 

 

 

0FA32h

05BC1h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0FA30h

0xxxxh

 

 

 

0FA30h

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010AAh

0xxxxh

 

 

 

010AAh

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010A8h

01234h

 

 

 

010A8h

05BC1h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010A6h

0xxxxh

 

 

 

010A6h

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Автоинкрементирование содержимого регистра производится после выборки операнда из памяти (Рис. 3.8).

Команда

Адрес

Операнд

+1/ +2

Рис. 3.8. Выборка операнда.

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

3.3.7. Непосредственный режим адресации

 

Непосредственный режим адресации описан в Табл. 3.10.

 

Таблица 3.10. Описание непосредственного режима адресации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ассемблерный код

Содержимое ПЗУ

 

 

 

 

 

 

 

 

 

MOV #45h,TONI

 

 

 

MOV @PC+,X(PC)

 

 

 

 

 

 

 

45

 

 

 

 

 

 

 

 

 

 

X = TONI – PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Длина

 

Два или три слова.

 

 

 

 

 

 

 

На одно слово меньше при использовании генератора констант

 

 

 

 

 

 

 

 

 

Операция

 

Пересылка константы, находящейся в слове, следующем за командой, по адресу

 

 

назначения TONI. После выборки пересылаемого значения счётчик команд указы

 

 

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

 

 

ному адресу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Комментарий

Допускается только для операнда источника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример

 

MOV

#45h,TONI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

До операции

После операции

 

Адресное

 

Регистры

 

Адресное

Регистры

пространство

пространство

 

 

 

 

 

 

0FF18h

 

0xxxxh

 

PC

 

 

 

 

 

 

 

 

0FF16h

01192h

 

 

 

0FF16h

 

01192h

 

 

 

 

 

 

 

 

 

 

 

 

0FF14h

00045h

 

 

 

0FF14h

 

00045h

 

 

 

 

 

 

 

 

 

 

 

 

0FF12h

040B0h

PC

0FF12h

 

040B0h

 

 

 

 

 

 

0FF16h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010AAh

0xxxxh

 

+01192h

010AAh

 

0xxxxh

 

 

 

 

 

 

010A8h

 

010A8h

 

 

 

 

010A8h

01234h

 

00045h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010A6h

0xxxxh

 

 

 

010A6h

 

0xxxxh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

В общей сложности набор команд ЦПУ MSP430 включает в себя 27 команд ядра и 24 эмулируемых команды. Команды ядра — это команды, которые имеют уникальные коды операций, декодируемые ЦПУ. Эмулируемые команды облег чают создание и чтение кода, но не имеют собственных кодов операций, а авто матически заменяются ассемблером на эквивалентные команды ядра. Использо вание эмулируемых команд не приводит к увеличению размера кода или сниже нию производительности.

Существует три формата команд ядра:

команды с двумя операндами;

команды с одним операндом;

команды перехода.

Все одно и двухоперандные команды могут работать как с однобайтными, так и с двухбайтными значениями, используя расширения .B и .W соответствен но. Команды, оперирующие байтами, используются для работы с однобайтными данными или доступа к 8 битным периферийным модулям. Команды, оперирую щие словами, используются для работы с двухбайтными данными или доступа к

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

16 битным периферийным модулям. Если расширение команды не указано, то она использует 2 байтные операнды.

Источник и приёмник в команде определяются следующими полями:

src

Операнд источник, определяемый битами As и S reg

dst

Операнд приёмник, определяемый битами Ad и D reg

As

Биты, определяющие режим адресации источника (src)

S reg

Рабочий регистр, используемый в качестве источника (src)

Ad

Биты, определяющие режим адресации приёмника (dst)

D reg

Рабочий регистр, используемый в качестве приёмника (dst)

B/W

Одно или двухбайтная операция:

 

0

— двухбайтная операция

 

1

— однобайтная операция

Примечание. Адрес назначения

Адрес назначения может быть любым в пределах адресного пространства. Тем не менее, при использовании команды, изменяющей содержимое приёмника, необ ходимо убедиться, что адрес назначения доступен для записи. К примеру, адрес, находящийся в диапазоне адресов масочного ПЗУ, будет корректным адресом на значения, однако его содержимое не может быть изменено, поэтому результат вы полнения команды будет утерян.

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

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

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

Код

операции

 

S Reg

 

Ad

B/W

 

As

 

D Reg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Перечень и краткое описание команд с двумя операндами приведены в

Табл. 3.11.

Примечание. Команды CMP и SUB

Команды CMP и SUB идентичны, за исключением возможности сохранения резуль тата. Это справедливо и для команд BIT и AND.

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

Формат команды с одним операндом представлен на Рис. 3.10.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

 

 

 

Код операции

 

 

 

B/W

 

Ad

 

D/S Reg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

Мнемоника

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

*

*

*

 

 

 

 

 

 

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

*

*

*

*

 

 

 

 

 

 

AND(.B)

src,dst src .and. dst dst

0

*

*

*

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

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

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

Перечень и краткое описание команд с одним операндом приведены в

Табл. 3.12.

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

Мнемоника

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

SP – 2 SP, PC+2 @SP

 

 

 

 

dst PC

 

 

 

 

 

 

RETI

dst

TOS SR, SP + 2 SP

*

 

*

*

 

*

 

 

TOS PC,SP + 2 SP

 

 

 

 

 

 

SXT

dst

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

0

 

*

*

 

*

 

 

 

 

 

 

 

 

 

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

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

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

Скомандой CALL можно использовать любые режимы адресации. При ис пользовании относительного (ADDRESS), непосредственного (#N), абсолютно го (&EDE) или индексного x(RN) режимов адресации значение адреса содержит ся в слове, расположенном после слова команды.

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

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

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

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Код операции

 

C

 

 

 

10 битное смещение PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Перечень и краткое описание команд перехода приведены в Табл. 3.13.

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

Мнемоника

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

Метка

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

 

 

 

 

 

Команды условного перехода осуществляют относительный переход по за данному смещению и не влияют на биты состояния ЦПУ. Переход может осу ществляться в пределах от –511 до +512 слов относительно текущего значения PC. Величина смещения интерпретируется как 10 битное значение со знаком, которое удваивается и прибавляется к содержимому счётчика команд:

PCнов = PCстар + 2 + PCсмещ 2.

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

* ADC[.W], * ADC.B

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

Синтаксис

ADC

dst или ADC.W

dst

 

ADC.B

dst

 

 

 

 

 

 

Операция

dst + C dst

 

 

 

 

 

 

 

Эмуляция

ADDC

#0,dst

 

 

 

ADDC.B #0,dst

 

 

 

 

Описание

Бит переноса (C) прибавляется к операнду приёмнику. Предыдущее содержимое опе

 

ранда теряется

 

 

 

 

Биты

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

состояния

ный.

 

 

 

Z: Устанавливается, если результат нулевой, иначе сбрасывается.

 

C: Устанавливается, если dst изменился с 0FFFFh до 0000, иначе сбрасывается.

 

Устанавливается, если dst изменился с 0FFh до 00, иначе сбрасывается.

 

V: Устанавливается, если произошло переполнение, иначе сбрасывается.

 

 

Биты

OSCOFF, CPUOFF и GIE не изменяются

режима

 

 

 

 

 

 

Пример 1

16 битный счётчик, на который указывает R13, прибавляется к 32 битному счётчику, на

 

который указывает R12.

 

 

 

ADD

@R13,0(R12)

; Складываем младшие слова

 

ADC

2(R12)

; Прибавляем перенос к старшему слову

 

 

Пример 2

8 битный счётчик, на который указывает R13, прибавляется к 16 битному счётчику, на

 

который указывает R12.

 

 

 

ADD.B

@R13,0(R12)

; Складываем младшие байты

 

ADC.B

1(R12)

; Прибавляем перенос к старшему байту

 

 

 

 

 

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

ADD[.W], ADD.B Сложение двух операндов

Синтаксис

ADD

 

src,dst

или ADD.W

src,dst

 

ADD.B

 

src,dst

 

 

 

 

 

 

 

Операция

src + dst dst

 

 

 

 

 

Описание

Операнд источник прибавляется к операнду приёмнику. Содержимое операнда источ

 

ника не изменяется. Предыдущее содержимое операнда приёмника теряется

 

 

Биты

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

состояния

ный.

 

 

 

 

 

Z: Устанавливается, если результат нулевой, иначе сбрасывается.

 

C: Устанавливается, если произошёл перенос, иначе сбрасывается.

 

V: Устанавливается, если произошло переполнение, иначе сбрасывается.

 

 

Биты

OSCOFF, CPUOFF и GIE не изменяются.

режима

 

 

 

 

 

 

 

 

Пример 1

Регистр R5 увеличивается на 10. В случае переноса осуществляется переход к метке

 

TONI.

 

 

 

 

 

 

ADD

#10,R5

 

 

 

 

JC

TONI

; Был перенос

 

 

......

 

; Нет переноса

 

 

 

Пример 2

Регистр R5 увеличивается на 10. В случае переноса осуществляется переход к метке

 

TONI.

 

 

 

 

 

 

ADD.B

 

#10,R5

; Прибавляем 10 к младшему байту регистра R5

 

JC

 

TONI

 

; Перенос произойдёт, если (R5) 246 [0Ah+0F6h]

 

......

 

 

; Нет переноса