Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2800
Скачиваний: 1
16-разрядное RISC CPU
Раздел III.
MSP430x1xxFamily
MSP430x1xxFamily
16-разрядное RISC CPU
В этом разделе описывается ЦПУ MSP430, режимы адресации и набор команд.
3.1. Введение в ЦПУ
ЦПУ включает возможности, специально созданные для современных технологий программирования, таких как вычисляемое ветвление, обработка таблиц и использование языков высокого уровня, подобных языку C. ЦПУ может выполнять адресацию в полном адресном диапазоне без использования страниц памяти.
ЦПУ обладает следующими возможностями:
•RISC-архитектура с 27 командами и 7 режимами адресации;
•Ортогональная архитектура, при которой каждая команда пригодна для каждого режима адресации;
•Полный доступ ко всем регистрам, включая программный счетчик, регистры статуса и указатель стека;
•Однотактные регистровые операции;
•Большой 16-разрядные регистровый файл, уменьшающий количество обращений к памяти;
•16-разрядная адресная шина, обеспечивающая прямой доступ и ветвление во всем диапазоне памяти;
•16-разрядная шина данных, позволяющая напрямую манипулировать параметрами шириной в слово;
•Генератор констант немедленно предоставляет шесть используемых наиболее часто значений, уменьшая размер кода;
•Прямой обмен между ячейками памяти без промежуточной записи в регистр;
•Команды и адресация в форматах «слово» и «байт».
Блок-схема ЦПУ показана на рис. 3.1.
3.2. Регистры ЦПУ
ЦПУ включает шестнадцать 16-разрядных регистров. Регистры R0, R1, R2 и R3 имеют специальное назначение. Регистры с R4 по R15 являются рабочими регистрами общего назначения.
3.2.1. Программный счетчик (PC)
16-разрядный программный счетчик (PC/R0) указывает на следующую команду, которая будет выполняться. Каждая команда состоит из четного числа
38 |
Библиотека Компэла |
|
Раздел III. |
16-разрядное RISC CPU |
MAB
Рис. 3-1. Блок-схема ЦПУ
Библиотека Компэла |
39 |
|
MSP430x1xxFamily
байтов (два, четыре или шесть), поэтому PC инкрементируется соответственно. Команды доступа в адресном пространстве 64 кБайт выполняются к границам слов, поэтому PC выравнивается к четным адресам. На рис. 3.2 показана организация программного счетчика.
Рис. 3-2. Программный счетчик
Программный счетчик PC может быть адресован всеми командами и во всех адресных режимах. Некоторые примеры:
MOV |
#LABEL, PC |
;Переход к адресу с меткой LABEL |
MOV |
LABEL, PC |
;Переход к адресу, содержащемуся в пере- |
менной LABEL |
||
MOV |
@R14, PC |
;Косвенный переход по косвенному содер- |
жимому R14 |
3.2.2. Указатель стека (SP)
Указатель стека (SP/R1) используется ЦПУ для хранения адресов возврата из подпрограмм и прерываний. Стек основан на предекрементной постинкрементной схеме. Кроме того, указатель стека SP может использоваться со всеми командами и во всех адресных режимах. На рис. 3.3 показана организация SP. Указатель стека SP инициализируется в ОЗУ пользователем и выравнивается к четным адресам.
Рис. 3-3. Указатель стека |
||
MOV |
2(SP),R6 |
;Элемент стека I2 в R6 |
MOV |
R7,0(SP) |
;Перезапись в вершину стека (TOS) содер- |
жимого R7 |
||
PUSH |
#0123h |
;Помещение числа 0123h на вершину стека |
(TOS) |
||
POP |
R8 |
;R8 = 0123h |
Особенности использования «SP» в качестве аргумента команд PUSH и POP описаны и показаны на рис. 3.5.
40 |
Библиотека Компэла |
|
Раздел III. |
16-разрядное RISC CPU |
|||||||||||||
Рис. 3-4. Использование стека
Рис. 3-5. Последовательность PUSH SP – POP SP
Указатель стека изменяется после выполнения команды PUSH SP.
Указатель стека не изменяется после команды POP SP. Команда POP SP помещает SP1 в указатель стека SP (SP2=SP1).
3.2.3. Регистр статуса (SR)
Регистр статуса (SR/R2), используемый как регистр источника или получателя, может адресоваться в регистровом режиме только с помощью командслов. Прочие комбинации режимов адресации используются для поддержки генератора констант. На рис. 3.6 показаны биты регистра статуса SR.
Рис. 3-6. Биты регистра статуса
Библиотека Компэла |
41 |
|
MSP430x1xxFamily
В таблице 3.1 приведено описание битов регистра статуса.
Таблица 3.1. Описание битов регистра статуса |
|||
Бит |
Описание |
||
Бит переполнения. |
|||
Этот бит устанавливается, если результат арифметической операции имеет пере- |
|||
полнение в области знаковых переменных. |
|||
ADD(.B), |
Устанавливается, когда: |
||
Положительный + Положительный = Отрицательный |
|||
V |
ADDC(.B) |
Отрицательный + Отрицательный = Положительный |
|
в противном случае сбрасывается |
|||
SUB(.B), |
Устанавливается, когда: |
||
Положительный – Отрицательный = Отрицательный |
|||
SUBC(.B), |
|||
Отрицательный – Положительный = Позитивный |
|||
CMP(.B) |
|||
в противном случае сбрасывается |
|||
SCG1 |
Системный тактовый генератор 1. |
||
Когда этот бит установлен, SMCLK выключен. |
|||
Системный тактовый генератор 0. |
|||
SCG0 |
Когда этот бит установлен, генератор DCO выключен, если DCOCLK не используется |
||
для MCLK или SMCLK. |
|||
Выключение осциллятора. |
|||
OSCOFF |
Когда этот бит установлен, осциллятор LFXT1, использующий кристалл, выключен, |
||
если LFXT1CLK не используется для MCLK или SMCLK. |
|||
CPUOFF |
Выключение ЦПУ. |
||
Когда этот бит установлен, ЦПУ выключено. |
|||
Общий бит разрешения прерываний. |
|||
GIE |
Когда этот бит установлен, маскируемые прерывания разрешены. Когда сброшен, |
||
все маскируемые прерывания запрещены. |
|||
Бит отрицательного результата. |
|||
Этот бит устанавливается, когда результат операции с байтом или словом отрица- |
|||
тельный и сбрасывается, когда результат не отрицательный. |
|||
N |
Операции со словами: |
||
N устанавливается по значению бита 15 результата |
|||
Операции с байтами: |
|||
N устанавливается по значению бита 7 результата |
|||
Бит нуля. |
|||
Z |
Этот бит устанавливается, когда результат операции с байтом или словом равен «0» |
||
и очищается, если результат не равен «0». |
|||
Бит переноса. |
|||
CЭтот бит устанавливается, когда результат операции с байтом или словом имеет перенос и очищается, когда переноса нет.
42 |
Библиотека Компэла |
|