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

MSP430_Final

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

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

4.3.5. Регистры общего назначения R4…R15

Двенадцать регистров с R4 по R15 могут содержать 8 , 16 и 20 битные значе ния. При записи в регистр однобайтного значения сбрасываются биты 19:8 регис тра. При записи 2 байтного значения — сбрасываются биты 19:16 регистра. Единственным исключением является команда SXT, которая выполняет расши рение знака на все биты 20 битного регистра.

На следующих рисунках показано, каким образом осуществляется манипули рование 8 , 16 и 20 битными данными. Обратите внимание, что при использова нии регистра в качестве операнда приёмника команды, работающей с одно и двухбайтными операндами, неиспользуемые старшие биты регистра всегда сбра сываются.

На Рис. 4.10 показано оперирование 8 битными значениями (команды с суф фиксом .B). В первом примере операндом источником является регистр, а опе рандом приёмником — байт в памяти. Во втором примере изображена обратная ситуация.

Операция «регистр – байт»

 

Операция «байт – регистр»

Старший байт Младший байт

 

Старший байт Младший байт

19 16 15

8 7

0

 

 

 

 

 

 

 

 

Не исп.

Не исп.

 

 

 

Регистр

 

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19 16 15

8 7

0

 

 

 

 

 

 

Память

 

 

 

 

 

Регистр

 

 

 

 

 

Не исп.

Не исп.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

 

 

 

Операция

 

 

 

 

 

 

 

 

 

 

 

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Память

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.10. Операции «регистр — память» и «память — регистр» с 8 битными данными.

На Рис. 4.11 и Рис. 4.12 показано оперирование 16 битными значениями (ко манды с суффиксом .W). На первом рисунке операндом источником является ре гистр, а операндом приёмником — слово в памяти. На втором рисунке изображе на обратная ситуация.

На Рис. 4.13 и Рис. 4.14 показано оперирование 20 битными значениями (ко манды с суффиксом .A). На первом рисунке операндом источником является ре гистр, а операндом приёмником — 20 битное значение в памяти. На втором ри сунке изображена обратная ситуация.

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

 

 

Операция «регистр – слово»

 

 

 

 

Операция «слово – регистр»

 

 

Старший байт Младший байт

 

 

 

 

Старший байт

 

Младший байт

19

16 15

8 7

0

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

 

 

 

 

 

Не исп.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

16 15

8

 

7

0

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Память

 

 

 

Не исп.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

 

 

 

 

 

 

Операция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Память

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.11. Операция «регистр — память»

 

 

Рис. 4.12. Операция «память — регистр»

 

 

с 16 битными данными.

 

 

 

 

 

с 16 битными данными.

 

 

 

 

 

 

 

Операция «регистр – 20Cбитное слово»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Старший байт Младший байт

 

 

 

 

 

 

 

 

 

19

16 15

 

8 7

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Не исп.

 

 

 

 

 

 

 

Регистр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Память +2

Не используется

 

 

 

 

 

 

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Память +2

0

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

Рис. 4.13. Операция «регистр — память» с 20 битными данными.

Операция «20Cбитное слово – регистр»

Старший байт Младший байт

19 16 15

8 7

0

 

Память +2

Не используется

 

 

 

 

 

 

Память

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр

Операция

Регистр

Рис. 4.14. Операция «память — регистр» с 20 битными данными.

4.4. Режимы адресации 103

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

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

В Табл. 4.3 приводятся значения битов режима As (для операнда источника) и Ad (для операнда приёмника), соответствующие тому или иному режиму адреса ции.

Таблица 4.3. Режимы адресации операндов

As/Ad

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

Синтаксис

Описание

 

 

 

 

00/0

Регистровый

Rn

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

 

 

 

 

01/1

Индексный

X(Rn)

(Rn + X) указывает на операнд. Значение X содержится

 

 

 

в следующем слове

 

 

 

 

01/1

Относительный

ADDR

(PC + X) указывает на операнд. Значение X содержится

 

 

 

в следующем слове. Используется индексный режим ад

 

 

 

ресации X(PC)

 

 

 

 

01/1

Абсолютный

&ADDR

Слово, следующее за командой, содержит абсолютный

 

 

 

адрес. Значение X содержится в следующем слове. Ис

 

 

 

пользуется индексный режим адресации X(SR)

 

 

 

 

10/—

Косвенный регистровый

@Rn

Rn используется в качестве указателя на операнд.

 

 

 

 

11/—

Косвенный регистро

@Rn+

Rn используется в качестве указателя на операнд. После

 

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

 

выполнения операции значение регистра Rn увеличива

 

 

 

ется на 1 для команд с суффиксом .B, на 2 для команд с

 

 

 

суффиксом .W и на 4 для команд с суффиксом .A

 

 

 

 

11/—

Непосредственный

#N

Слово, следующее за командой, содержит значение

 

 

 

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

 

 

 

ции с автоинкрементом @PC+

Более подробно эти режимы адресации рассматриваются в последующих раз делах. В большинстве примеров для источника и приёмника используется один и тот же режим адресации, однако в командах можно использовать любые допусти мые комбинации режимов адресации источника и приёмника.

Примечание. Использование меток EDE, TONI, TOM и LEO

В документации на семейство MSP430 аббревиатуры EDE, TONI, TOM и LEO ис пользуются в качестве обычных меток. Они не имеют никакого специального зна чения.

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

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

Операция:

Операндом является 8 , 16 или 20 битное содержимое указан

 

ного регистра ЦПУ.

Длина:

Одно, два или три слова.

Комментарий:

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

Операция

При однобайтной операции из регистра источника Rsrc считы

с байтами:

вается только 8 младших битов, а результат операции помеща

 

ется в 8 младших битов регистра приёмника Rdst. Биты 19:8 ре

 

гистра Rdst сбрасываются. Регистр Rsrc не изменяется.

Операция

При двухбайтной операции из регистра источника Rsrc считы

с двухбайтными

вается только 16 младших битов, а результат операции помеща

словами:

ется в 16 младших битов регистра приёмника Rdst. Биты 19:16

 

регистра Rdst сбрасываются. Регистр Rsrc не изменяется.

Операция

При операции с 20 битными словами из регистра источника

с 20 битными

Rsrc считываются все 20 бит, а результат операции помещается

словами:

в регистр приёмник Rdst. Регистр Rsrc не изменяется.

Команда SXT:

Команда SXT является единственным исключением — знак

 

младшего байта, находящийся в 7 м бите регистра, копируется

 

и в биты 19:8 регистра Rdst.

Пример 1

BIS.W R5,R6

Эта команда выполняет операцию «Логическое ИЛИ» между 16 битным зна чением, находящемся в регистре R5, и 16 битным содержимым регистра R6. Би ты 19:16 регистра R6 сбрасываются.

 

До операции

 

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

 

Адресное

 

Регистры

 

Адресное

 

 

Регистры

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

 

 

 

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

 

 

21036h

 

 

 

 

 

21036h

 

PC

 

 

 

 

 

 

 

 

 

 

xxxxh

 

R5

 

AA550h

xxxxh

R5

AA550h

 

 

 

 

 

 

 

 

 

 

 

21034h

D506h

PC

R6

 

11111h

21034h

D506h

 

R6

0B551h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A550h.or.1111h = B551h

Пример 2

BISX.A R5,R6

Эта команда выполняет операцию «Логическое ИЛИ» между 20 битным значением, находящемся в регистре R5, и 20 битным значением, находящемся в регистре R6.

Слово расширения содержит бит A/L для поддержки 20 битных данных. Сло во команды соответствует однобайтной операции, при этом биты A/L:B/W = 01. Результат выполнения команды будет следующим:

4.4. Режимы адресации 105

 

До операции

 

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

 

Адресное

 

Регистры

 

Адресное

 

Регистры

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

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21036h

xxxxh

 

R5

 

AA550h

21036h

xxxxh

PC

R5

AA550h

 

 

 

 

 

 

 

 

 

 

 

21034h

D546h

 

R6

 

11111h

21034h

D546h

 

R6

BB551h

 

 

 

 

 

 

 

 

 

 

 

21032h

1800h

 

PC

 

 

21032h

1800h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA550h.or.11111h = BB551h

4.4.2. Индексный режим адресации

При использовании индексного режима адрес операнда вычисляется как сум ма смещения (число со знаком) и содержимого регистра ЦПУ. Существует три разновидности индексного режима:

индексный режим при адресации нижней области памяти объёмом 64 КБ;

индексный режим при адресации командами MSP430 памяти за пределами нижней 64 КБ области;

индексный режим в командах MSP430X.

Индексный режим адресации нижней 64CКБ области памяти

Если регистр ЦПУ Rn указывает на адрес в нижней 64 КБ области памяти, то биты 19:16 итогового адреса сбрасываются после сложения содержимого регистра ЦПУ с индексом, представляющим собой 16 битное число со знаком. Это озна чает, что итоговый адрес всегда будет находиться в пределах нижней 64 КБ об ласти, не выходя за её границы. Данный режим адресации позволяет обращаться к ОЗУ и периферийным устройствам микроконтроллера, а также использовать без всякой модификации существующее ПО, написанное для ЦПУ MSP430 (Рис. 4.15).

 

Нижние 64 КБ

 

 

 

 

Rn.19:16 = 0

19 16 15

0

 

FFFFF

 

 

 

 

 

Регистр ЦПУ

 

 

0

 

 

 

 

Rn

 

 

 

 

 

 

S Смещение (в байтах)

16 битный индекс

 

 

 

 

со знаком

10000

 

 

 

 

0FFFF

КБ

 

 

 

 

16 битное сложение

 

Rn.19:0

64

 

 

 

Нижние

 

 

 

 

0

 

Адрес в памяти

 

 

 

00000

 

 

 

 

Рис. 4.15. Индексный режим адресации в нижней 64 КБ области памяти.

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

Длина:

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

Операция:

Индекс (смещение), представляющий собой 16 битное число со

 

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

 

бавляется к содержимому регистра ЦПУ Rn. Биты 19:16 результа

 

та обнуляются, формируя 16 битный адрес из диапазона

 

00000h…0FFFFh. Операндом является содержимое ячейки памя

 

ти по данному адресу.

Коммента

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

рий:

чески вычисляет смещение и вставляет его в итоговый код.

Пример

ADD.B 1000h(R5),0F000h(R6)

Эта команда выполняет сложение 8 битного значения операнда источника, расположенного по адресу 1000h(R5), с содержимым операнда приёмника, рас положенного по адресу 0F000h(R6). Результат сложения сохраняется в операнде приёмнике. Оба операнда расположены в нижней 64 КБ области памяти, пос кольку биты 19:16 регистров R5 и R6 сброшены.

Источник:

Байт с адресом R5 + 1000h, равным 0479Ch + 1000h = 0579Ch (пос

 

 

ле усечения до 16 битного значения).

 

 

 

 

 

 

 

Приёмник:

Байт с адресом R6 + F000h, равным 01778h + F000h = 00778h (пос

 

 

ле усечения до 16 битного значения).

 

 

 

 

 

 

 

 

 

До операции

 

 

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

 

 

 

Адресное

 

 

Регистры

 

 

Адресное

 

 

Регистры

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

 

 

 

 

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

 

 

 

 

 

1103Ah

 

 

 

 

 

 

1103Ah

 

PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xxxxh

 

R5

0479Ch

 

xxxxh

R5

0479Ch

 

 

 

 

 

 

 

 

11038h

 

 

 

 

 

 

11038h

F000h

 

R6

01778h

 

F000h

 

R6

01778h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11036h

1000h

 

 

 

 

 

11036h

1000h

 

 

 

 

 

 

11034h

55D6h

 

PC

 

 

11034h

55D6h

 

 

 

 

 

 

 

 

 

 

 

 

01778h

 

 

 

 

 

 

32h

src

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0077Ah

xxxxh

 

 

 

 

0077Ah

xxxxh

 

 

 

 

 

 

+F000h

 

 

 

+45h

dst

 

 

 

 

 

 

00778h

 

 

 

 

 

 

77h

Sum

00778h

xx45h

 

 

 

 

00778h

xx77h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0479Ch

 

 

 

 

 

 

 

 

 

 

 

 

0579Eh

xxxxh

 

+1000h

0579Eh

xxxxh

 

 

 

0579Ch

 

 

0579Ch

xx32h

 

0579Ch

xx32h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.4. Режимы адресации 107

Команды MSP430 и индексный режим адресации верхней области памяти

Если регистр ЦПУ Rn указывает на адрес, расположенный за пределами ниж ней 64 КБ области памяти, то для вычисления адреса операнда используются биты 19:16 регистра. Таким образом, операнд может быть расположен в диапазоне адре сов Rn ±32 КБ, поскольку индекс X является 16 битным числом со знаком. При этом итоговый адрес может выйти за пределы адресного пространства ЦПУ и в ре зультате отобразиться на нижнюю 64 КБ область памяти (см. Рис. 4.16 и Рис. 4.17).

Верхняя область памяти Rn.19:16 > 0

19

16 15

0

FFFFF

 

1 ... 15

 

Rn.19:0

Rn ±32 КБ

 

 

S

S Смещение (в байтах)

10000

 

 

0FFFF

 

 

20 битное сложение

00000

Нижние 64

 

 

 

Регистр ЦПУ Rn

16 битный индекс со знаком (знак расширяется до 20 бит)

Адрес в памяти

Рис. 4.16. Индексный режим адресации верхней области памяти.

FFFFF

 

Rn.19:0

±32

 

10000

 

0,FFFF

64 KБ

Rn.19:0

Нижние

0000C

Rn.19:0

 

Rn.19:0

 

±32

Рис. 4.17. Выход за границы адресного пространства при индексном режиме адресации.

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

Длина:

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

Операция:

Индекс (смещение), представляющий собой 16 битное число со

 

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

 

бавляется к 20 битному содержимому регистра ЦПУ Rn. В ре

 

зультате формируется 20 битный адрес из диапазона 0…FFFFFh.

 

Операндом является содержимое ячейки памяти по данному ад

 

ресу.

Комментарий: Допускается для источника и приёмника. Ассемблер автомати чески вычисляет смещение и вставляет его в итоговый код.

Пример

ADD.W 8346h(R5),2100h(R6)

Эта команда выполняет сложение 16 битных значений операнда источника и операнда приёмника, расположенных по адресам, указанным в команде. 16 бит ный результат сложения сохраняется в операнде приёмнике. Оба операнда могут быть расположены по любому адресу из допустимого диапазона.

Источник: Слово с адресом R5 + 8346h. Отрицательное 16 битное смещение 8346h преобразуется к 20 битному значению, в результате чего ад рес операнда получается равным 23456h + F8346h = 1B79Ch.

Приёмник: Слово с адресом R6 + 2100h, равным 15678h + 2100h = 17778h.

 

До операции

 

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

 

Адресное

 

Регистры

 

Адресное

 

Регистры

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

 

 

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

 

 

1103Ah

 

 

 

 

1103Ah

 

PC

 

 

 

 

 

 

 

 

 

xxxxh

R5

23456h

 

xxxxh

R5

23456h

 

 

 

 

 

 

 

 

 

 

11038h

2100h

R6

15678h

 

11038h

2100h

 

R6

15678h

 

 

 

 

 

 

 

 

 

 

11036h

8346h

 

 

 

11036h

8346h

 

 

 

11034h

5596h

PC

 

 

11034h

5596h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15678h

 

 

 

05432h

src

 

 

 

 

 

 

1777Ah

xxxxh

 

1777Ah

xxxxh

 

+02100h

 

+02345h

dst

 

 

 

17778h

 

 

 

07777h

Sum

17778h

2345h

 

17778h

7777h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23456h

 

 

 

 

 

 

 

 

 

 

 

 

1B79Eh

xxxxh

 

+F8346h

1B79Eh

xxxxh

 

 

 

1B79Ch

 

 

1B79Ch

5432h

 

1B79Ch

5432h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.18. Пример использования индексного режима адресации.

4.4. Режимы адресации 109

Команды MSP430X и индексный режим адресации

При использовании индексного режима адресации с командами MSP430X, операнды могут быть расположены по любому адресу в диапазоне Rn ± 19 бит.

Длина:

Три или четыре слова.

Операция: Адрес операнда вычисляется как сумма 20 битного содержимого регистра ЦПУ и 20 битного индекса. Четыре старших бита индекса хранятся в слове расширения, а остальные 16 битов — в слове, рас положенном после команды. Содержимое регистра не изменяется.

Коммента Допускается для источника и приёмника. Ассемблер автоматичес рий: ки вычисляет смещение и вставляет его в итоговый код.

Пример

ADDX.A 12346h(R5),32100h(R6)

Эта команда выполняет сложение 20 битных значений операнда источника и операнда приёмника, расположенных по адресам, указанным в команде. Резуль тат сложения сохраняется в операнде приёмнике.

Источник: Два слова, первое из которых расположено по адресу R5 + 12346h. То есть адрес операнда равен 23456h + 12346h = 3579Ch.

Приёмник: Два слова, первое из которых расположено по адресу R6 + 32100h. То есть адрес операнда равен 45678h + 32100h = 77778h.

Вслове расширения содержатся старшие биты значений смещения источника

иприёмника и бит A/L, определяющий разрядность данных. Поскольку исполь зуются 20 битные значения, слово команды соответствует однобайтной опера ции, при этом биты A/L:B/W = 01.

 

 

До операции

 

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

 

 

 

 

Адресное

 

 

Регистры

 

Адресное

 

Регистры

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

 

 

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

 

 

 

 

2103Ah

 

 

 

 

 

 

 

 

2103Ah

 

 

 

 

 

 

 

 

 

 

 

 

PC

 

 

 

xxxxh

 

 

R5

23456h

xxxxh

R5

23456h

 

21038h

2100h

 

R6

45678h

21038h

2100h

 

R6

45678h

 

21036h

2346h

 

 

 

 

 

21036h

2346h

 

 

 

 

 

21034h

55D6h

 

 

 

 

 

21034h

55D6h

 

 

 

 

 

21032h

1883h

 

PC

 

 

21032h

1883h

 

 

 

 

 

 

 

 

 

 

 

 

45678h

 

 

 

65432h

src

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7777Ah

0001h

 

 

 

 

7777Ah

0007h

 

 

 

 

+32100h

 

 

+12345h

dst

77778h

2345h

 

 

 

 

77778h

7777h

 

 

 

 

77778h

 

77777h

Sum

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3579Eh

0006h

 

 

 

23456h

3579Eh

0006h

 

 

 

 

 

3579Ch

5432h

 

 

 

+12346h

 

3579Ch

5432h

 

 

 

 

 

 

 

 

 

 

 

 

3579Ch

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

При использовании относительного режима адрес операнда вычисляется как сумма смещения (число со знаком) и текущего значения счётчика команд. Су ществует три разновидности относительного режима:

относительный режим при адресации нижней области памяти объёмом 64 КБ;

относительный режим при адресации командами MSP430 памяти за преде лами нижней 64 КБ области;

относительный режим в командах MSP430X.

Относительный режим адресации в нижней 64CКБ области памяти

Если счётчик команд PC указывает на адрес в нижней 64 КБ области памяти, то биты 19:16 итогового адреса сбрасываются после сложения содержимого PC с индексом, представляющим собой 16 битное число со знаком. Это означает, что итоговый адрес всегда будет находиться в пределах нижней 64 КБ области, не вы ходя за её границы. Данный режим адресации позволяет обращаться к ОЗУ и пе риферийным устройствам микроконтроллера, а также использовать без всякой модификации существующее ПО, написанное для ЦПУ MSP430 (Рис. 4.19).

Операция:

Индекс (смещение), представляющий собой 16 битное число со

 

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

 

бавляется к текущему значению счётчика команд PC. Биты 19:16

 

результата обнуляются, формируя 16 битный адрес из диапазо

 

на 00000h…0FFFFh. Операндом является содержимое ячейки

 

памяти по данному адресу.

Длина:

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

Комментарий: Допускается для источника и приёмника. Ассемблер автомати чески вычисляет смещение и вставляет его в итоговый код.

Пример

ADD.B EDE,TONI

Эта команда выполняет сложение 8 битного значения операнда источника EDE с содержимым операнда приёмника TONI. Результат сложения сохраняется в операнде приёмнике. Оба операнда расположены в нижней 64 КБ области памяти.

Источник:

Для адресации байта EDE, расположенного по адресу 0579Ch, ис

 

пользуется выражение PC + 04766h. Значение смещения опреде

 

ляется выражением 0579Ch – 01036h = 04766h, где 01036h — ад

 

рес, по которому хранится смещение в данном примере.

Приёмник:

Для адресации байта TONI, расположенного по адресу 00778h, ис

 

пользуется выражение PC + F740h. Значение смещения определя

 

ется выражением 00778h – 01038h = FF740h (усечено до 16 бит),

 

где 01038h — адрес, по которому хранится смещение в данном

 

примере.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]