Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2853
Скачиваний: 1
MSP430x1xxFamily
Проверяется бит приема (RCV) при последовательной передаче данных. Поскольку при использовании команды BIT для проверки одного бита содержимое бита переноса эквивалентно состоянию проверяемого бита, оно используется в следующей команде; прочитанная информация сдвигается в регистр RECBUF:
;
;Последовательная передача данных, начиная с младшего бита (LSB), сдвиг которого происходит в первую очередь:
BIT.B #RCV,RCCTL |
;xxxx xxxx xxxx xxxx |
|||||
;Информационный бит в бите переноса |
||||||
RRC RECBUF |
;Бит переноса → в MSB регистра |
|||||
;RECBUF |
||||||
… |
;cxxx xxxx |
|||||
Пример |
;повтор двух предыдущих команд |
|||||
… |
;8 раз |
|||||
;cccc cccc |
; |
|||||
MSB |
LSB |
;^ |
^ |
|||
;Последовательная передача данных, |
||||||
;начиная со старшего бита (MSB), |
||||||
;сдвиг которого происходит в первую |
||||||
;очередь: |
||||||
BIT.B #RCV, RCCTL ;Информационный бит в бите переноса |
||||||
RLC.B RECBUF |
;Бит переноса → в LSB регистра |
|||||
;RECBUF |
||||||
… |
;xxxx xxxc |
|||||
;повтор двух предыдущих команд |
||||||
… |
;8 раз |
|||||
;cccc cccc |
||||||
;LSB |
||||||
;MSB |
||||||
*BR, BRANCH |
Переход к … месту назначения |
|||||
Синтаксис |
BR dst |
|||||
Операция |
dst → PC |
|||||
Эмуляция |
MOV dst, PC |
|||||
Безусловный переход выполняется в любое место 64 кБайт адресного |
||||||
Описание |
пространства. Могут использоваться все способы адресации. Команда пере- |
|||||
хода – это команда-слово. |
||||||
Биты статуса |
Биты статуса не изменяются |
|||||
Примеры для всех режимов адресации: |
||||||
BR #EXEC ;Переход к метке EXEC или прямой переход |
||||||
(например, #0A4h) |
||||||
Пример |
BR EXEC |
;Команда ядра MOV @PC+,PC |
||||
;Переход по адресу, содержащемуся в EXEC |
||||||
;Команда ядра MOV X(PC),PC |
||||||
;Косвенный адрес |
||||||
Библиотека Компэла |
||||||
60 |
||||||
Раздел III. |
16-разрядное RISC CPU |
||||
BR &EXEC ;Переход по адресу, содержащемуся |
|||||
;в абсолютном адресе EXEC |
|||||
;Команда ядра MOV X(0),PC |
|||||
BR R5 |
;Косвенный адрес |
||||
;Переход по адресу, содержащемуся в R5 |
|||||
;Команда ядра MOV R5,PC |
|||||
;Косвенная адресация по содержимому R5BR @R5 |
|||||
;Переход по адресу, содержащемуся в слове, |
|||||
;указанном врегистре R5 |
|||||
;Команда ядра MOV @R5,PC |
|||||
;Косвенная адресация по косвенному |
|||||
BR @R5+ |
;содержимому R5 |
||||
;Переход по адресу, содержащемуся в слове, |
|||||
;указанном в регистре R5 и последующий |
|||||
Пример |
;инкремент указателя в R5. |
||||
;При следующем использовании указателя R5 |
|||||
;программным потоком выполнение программы |
|||||
;может измениться, поскольку будет |
|||||
;использован следующей адрес |
|||||
;в таблице, указанной регистром R5 |
|||||
;Команда ядра MOV @R5,PC |
|||||
;Косвенная адресация по косвенному |
|||||
;содержимому R5 c автоинкрементом |
|||||
BR X(R5) ;Переход по адресу, содержащемуся в адресе, |
|||||
;указанном выражением R5+Х (например, |
|||||
;таблица со стартовым адресом Х). «Х» может |
|||||
;быть адресом или меткой |
|||||
;Команда ядра MOV X(R5),PC |
|||||
;Косвенная адресация по косвенному |
|||||
;содержимому R5 + X |
|||||
CALL |
Вызов подпрограммы |
||||
Синтаксис |
CALL dst |
||||
dst → tmp dst оценивается и сохраняется |
|||||
Операция |
SP – 2 → SP |
||||
PC → @SP |
PC сохраняется на вершине стека (TOS) |
||||
tmp → PC dst записывается в PC |
|||||
Вызов подпрограммы может производиться по любому адресу в пределах |
|||||
Описание |
64 кБайт адресного пространства. Могут использоваться все способы ад- |
||||
ресации. Адрес возврата (адрес следующей команды) сохраняется в стеке. |
|||||
Команда вызова подпрограммы – это команда-слово. |
|||||
Биты статуса |
Биты статуса не изменяются |
||||
Примеры для всех режимов адресации: |
|||||
Пример |
CALL #EXEC ;Вызов с метки EXEC или прямая адресация |
||||
;(например, #0A4h) |
|||||
;SP-2 → SP, PC+2 → @SP, @PC+ → PC |
|||||
Библиотека Компэла |
|||||
61 |
|||||
MSP430x1xxFamily |
|||||
CALL EXEC |
;Вызов по адресу, содержащемуся в EXEC |
||||
;SP-2 → SP, PC+2 → @SP, X(PC) → PC |
|||||
;Косвенная адресация |
|||||
CALL &EXEC ;Вызов по адресу, содержащемуся |
|||||
;в абсолютном адресе EXEC |
|||||
;SP-2 → SP, PC+2 → @SP, X(0) → PC |
|||||
CALL R5 |
;Косвенная адресация |
||||
;Вызов по адресу, содержащемуся в R5 |
|||||
;SP-2 → SP, PC+2 → @SP, R5 → PC |
|||||
CALL @R5 |
;Косвенная адресация по содержимому R5 |
||||
;Вызов по адресу, содержащемуся в слове, |
|||||
;указанном в регистре R5 |
|||||
;SP-2 → SP, PC+2 → @SP, @R5 → PC |
|||||
;Косвенная адресация по косвенному |
|||||
CALL @R5+ |
;содержимому R5 |
||||
;Вызов по адресу, содержащемуся |
|||||
Пример |
;в слове, указанном в регистре R5 |
||||
;и последующий инкремент указателя в R5. |
|||||
;При следующем использовании указателя R5 |
|||||
;программным потоком выполнение программы |
|||||
;может измениться, поскольку будет |
|||||
;использован следующей адрес в таблице, |
|||||
;указанной регистром R5 |
|||||
;SP-2 → SP, PC+2 → @SP, @R5 → PC |
|||||
;Косвенная адресация по косвенному |
|||||
;содержимому R5 c автоинкрементом |
|||||
CALL X(R5) ;Вызов по адресу, содержащемуся в адресе, |
|||||
;указанном выражением R5+Х (например, |
|||||
;таблица со стартовым адресом Х). |
|||||
;«Х» может быть адресом или меткой. |
|||||
;SP-2 → SP, PC+2 → @SP, X(R5) → PC |
|||||
;Косвенная адресация по косвенному |
|||||
;содержимому R5 + X |
|||||
*CLR[.W] |
Очистка получателя |
||||
*CLR.B |
Очистка получателя |
||||
Синтаксис |
CLR dst или CLR.W dst |
||||
CLR.B dst |
|||||
Операция |
0 → dst |
||||
Эмуляция |
MOV #0, dst |
||||
MOV.B #0, dst |
|||||
Описание |
Операнд получателя очищается |
||||
Биты статуса |
Биты статуса не изменяются |
||||
Пример |
Очистка слова TONI в ОЗУ: |
||||
CLR TONI |
;0 → TONI |
||||
Пример |
Очистка регистра R5: |
||||
CLR R5 |
|||||
Пример |
Очистка байта TONI в ОЗУ: |
||||
CLR.B TONI |
;0 → TONI |
||||
Библиотека Компэла |
|||||
62 |
|||||
Раздел III. |
16-разрядное RISC CPU |
|||||
*CLRC |
Очистка бита переноса |
|||||
Синтаксис |
CLRC |
|||||
Операция |
0 → С |
|||||
Эмуляция |
BIC #1, SR |
|||||
Описание |
Бит переноса (С) очищается. Команда очистки переноса – это команда-слово. |
|||||
N: |
Не изменяется |
|||||
Биты статуса |
Z: |
Не изменяется |
||||
C: |
Очищается |
|||||
V: |
Не изменяется |
|||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||
Прибавление содержимого 16-разрядного десятичного счетчика, указанного |
||||||
в R13 к содержимому 32-разрядного счетчика, указанного в R12: |
||||||
CLRC |
;C=0: определение исходного |
|||||
;состояния |
||||||
Пример |
DADD @R13,0(R12) ;сложение 16-разрядного счетчика |
|||||
;с младшим словом 32-разрядного |
||||||
DADC 2(R12) |
;счетчика |
|||||
;прибавление переноса к старшему |
||||||
;слову 32-разрядного счетчика |
||||||
*CLRN |
Очистка бита отрицания |
|||||
Синтаксис |
CLRN |
|||||
Операция |
0 → N или (.NOT.src .AND. dst → dst) |
|||||
Эмуляция |
BIC #4, SR |
|||||
Константа 04h инвертируется (0FFFBh) и логически умножается (AND) с |
||||||
Описание |
операндом получателя. Результат помещается в получатель. Команда очистки |
|||||
бита отрицания – это команда-слово. |
||||||
N: |
Сбрасывается в «0» |
|||||
Биты статуса |
Z: |
Не изменяется |
||||
C: |
Не изменяется |
|||||
V: |
Не изменяется |
|||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||
Пример |
Бит отрицания в регистре статуса очищается. Это позволяет избежать специ- |
|||||
альной обработки отрицательных чисел вызываемой подпрограммы. |
||||||
CLRN |
||||||
CALL SUBR |
||||||
SUBR |
… |
|||||
JN SUBRET ;если при входе – отрицательное значение, |
||||||
;ничего не делается и происходит выход |
||||||
… |
;из подпрограммы |
|||||
SUBRET |
RET |
|||||
Библиотека Компэла |
||||||
63 |
||||||