Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2850
Скачиваний: 1
Раздел III. 16-разрядное RISC CPU
В таблице 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 |
Метка |
Безусловный переход к метке |
Условные переходы обеспечивают ветвление программы относительно программного счетчика PC и не оказывают влияния на биты статуса. Возможный диапазон переходов с помощью команды перехода составляет от -511 до +512 слов относительно текущего значения PC. 10-разряное смещение программного счетчика обрабатывается как 10-разрядное значение со знаком: удваивается и складывается с содержимым программного счетчика:
PCnew=PCold + 2 + PCoffset × 2
где: PCnew – новое содержимое программного счетчика; PCold – исходное содержимое программного счетчика;
PCoffset – 10-разрядная величина смещения программного счетчика.
ADC[.W] |
Сложить бит переноса с получателем |
|||||
ADC.B |
Сложить бит переноса с получателем |
|||||
Синтаксис |
ADC dst или ADC.W dst |
|||||
ADC.B dst |
||||||
Операция |
dst + C → dst |
|||||
Эмуляция |
ADDC #0,dst |
|||||
ADDC.B #0,dst |
||||||
Описание |
Бит переноса (С) складывается с операндом получателя. Предыдущее содер- |
|||||
жимое получателя теряется. |
||||||
N: |
Устанавливается, если результат отрицательный, сбрасывается, |
|||||
если положительный |
||||||
Биты статуса |
||||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
|||||
вается |
||||||
Библиотека Компэла |
||||||
55 |
||||||
MSP430x1xxFamily |
||||
Устанавливается, если содержимое получателя dst инкрементирует- |
||||
C: |
ся от 0FFFFh к 0000, в противном случае сбрасывается; |
|||
Устанавливается, если содержимое получателя dst инкрементирует- |
||||
Биты статуса |
||||
ся от 0FFh к 00, в противном случае сбрасывается; |
||||
V: |
Устанавливается, если произошло арифметическое переполнение, |
|||
в противном случае сбрасывается |
||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||
Сложение содержимого 16-разрядного счетчика, указанного в R13, с 32-раз- |
||||
Пример |
рядным счетчиком, указанным в R12: |
|||
ADD @R13,0(R12) |
;сложение LSD |
|||
ADC 2(R12) |
;сложение переноса с MSD |
|||
Сложение содержимого 8-разрядного счетчика, указанного в R13, c 16-раз- |
||||
Пример |
рядным счетчиком, указанным в R12: |
|||
ADD.B @R13,0(R12) |
;сложение LSD |
|||
ADC.B 1(R12) |
;сложение переноса с MSD |
|||
ADD[.W] |
Сложение содержимого источника с содержимым получателя |
|||
ADD.B |
Сложение содержимого источника с содержимым получателя |
|||
Синтаксис |
ADD src,dst или ADD.W src,dst |
|||
ADD.B src,dst |
||||
Операция |
src + dst → dst |
|||
Описание
Операнд источника складывается с операндом получателя. Операнд источника не изменяется. Предыдущее содержимое получателя теряется
N: |
Устанавливается, если результат отрицательный, сбрасывается, |
|||||
если положительный |
||||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
|||||
вается |
||||||
Биты статуса |
||||||
C: |
Устанавливается, если в результате происходит перенос; очищается, |
|||||
если переноса нет |
||||||
V: |
Устанавливается, если произошло арифметическое переполнение, |
|||||
в противном случае сбрасывается |
||||||
Биты режима Биты OSCOFF, CPUOFF и GIE не изменяются |
||||||
Прибавление 10 к содержимому R5. Выполняется переход к метке TONI, если |
||||||
произошел перенос (установлен бит С): |
||||||
Пример |
ADD #10, R5 |
|||||
JC TONI |
;произошел перенос |
|||||
… |
;переноса нет |
|||||
Прибавление 10 к содержимому R5. Выполняется переход к метке TONI, если |
||||||
произошел перенос (установлен бит С): |
||||||
Пример |
ADD.B #10, R5 ;прибавление 10 к младшему байту R5 |
|||||
JC TONI |
;перенос произошел, если (R5) ≥ 246 |
|||||
… |
;[0Ah+0F6h] |
|||||
;переноса нет |
||||||
Библиотека Компэла |
||||||
56 |
||||||
Раздел III. |
16-разрядное RISC CPU |
||||
ADDC[.W] |
Сложение содержимого источника и переноса с содержимым получателя |
||||
ADDC.B |
Сложение содержимого источника и переноса с содержимым получателя |
||||
Синтаксис |
ADDС src,dst или ADDС.W src,dst |
||||
ADDС.B src,dst |
|||||
Операция |
src + dst + С → dst |
||||
Операнд источника и бит переноса (С) складываются с операндом получате- |
|||||
Описание |
ля. Операнд источника не изменяется. Предыдущее содержимое получателя |
||||
теряется |
|||||
N: |
Устанавливается, если результат отрицательный, сбрасывается, |
||||
если положительный |
|||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
||||
вается |
|||||
Биты статуса |
|||||
C: |
Устанавливается, если произошел перенос из MSB результата; |
||||
сбрасывается, если переноса нет |
|||||
V: |
Устанавливается, если произошло арифметическое переполнение, |
||||
в противном случае сбрасывается |
|||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
||||
Прибавление содержимого 32-разрядного счетчика, указанного в R13, к |
|||||
32-разрядному счетчику, расположенному на одиннадцать слов (20/2 + 2/2) |
|||||
выше указанного в R13: |
|||||
Пример |
ADD @R13+, 20(R13) ;сложение LSD-байтов без учета |
||||
;переноса |
|||||
ADDC @R13+, 20(R13) ;сложение MSD с учетом переноса |
|||||
… |
;в результате |
||||
;предыдущей команды сложения LSD |
|||||
Прибавление содержимого 24-разрядного счетчика, указанного в R13, к |
|||||
24-разрядному счетчику, расположенному на одиннадцать слов выше указан- |
|||||
ного в R13: |
|||||
ADD.B @R13+, 10(R13) ;сложение LSD-байтов без учета |
|||||
Пример |
;переноса |
||||
ADDC.B @R13+, 10(R13) ;сложение средних битов |
|||||
;с переносом |
|||||
ADDC.B @R13+, 10(R13) ;сложение MSD с учетом переноса |
|||||
… |
;в результате |
||||
;предыдущей команды сложения LSD |
|||||
AND[.W] |
Логическое «И» источника и получателя |
||||
AND.B |
Логическое «И» источника и получателя |
||||
Синтаксис |
AND src,dst или AND.W src,dst |
||||
AND.B src,dst |
|||||
Операция |
src .AND. dst → dst |
||||
Описание |
Над операндом источника и операндом получателя выполняется операция |
||||
логического «И» (логическое умножение). Результат остается в получателе. |
|||||
Библиотека Компэла |
|||||
57 |
|||||
MSP430x1xxFamily
N: |
Устанавливается, если в результате устанавливается MSB, сбрасы- |
|||||
вается, если не устанавливается |
||||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
|||||
Биты статуса |
вается |
|||||
C: |
Устанавливается, если результат не «0»; в противном случае сбра- |
|||||
сывается (=.NOT. Zero) |
||||||
V: |
Сбрасывается |
|||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||
Установка битов в R5 с использованием маски (#0AA55h) для слова, адресо- |
||||||
ванного меткой TOM. Если результат «0», выполняется переход к метке TONI: |
||||||
MOV #0AA55h, R5 |
;загрузка маски в регистр R5 |
|||||
AND R5, TOM |
;маскирование слова, адресованного |
|||||
JZ |
TONI |
;TOM, с помощью регистра R5 |
||||
; |
||||||
Пример |
… |
;результат не «0» |
||||
; |
||||||
; |
||||||
;или |
||||||
; |
||||||
; |
||||||
AND #0AA55h,TOM |
||||||
JZ |
TONI |
|||||
Логическое перемножение битов маски #0A5h с младшим байтом TOM. Если |
||||||
результат «0», выполняется переход к метке TONI: |
||||||
Пример |
AND.B #0A5,TOM |
;маскирование младшего байта маской |
||||
JZ |
TONI |
;#0A5h |
||||
; |
||||||
… |
;результат не «0» |
|||||
BIC[.W] |
Очистка битов получателя |
|||||
BIC.B |
Очистка битов получателя |
|||||
Синтаксис |
BIC src,dst или BIC.W src,dst |
|||||
BIC.B src,dst |
||||||
Операция |
.NOT.src .AND. dst → dst |
|||||
Инвертированный операнд источника и операнд получателя логически |
||||||
Описание |
перемножаются. Результат помещается в получатель. Операнд источника не |
|||||
изменяется. |
||||||
Биты статуса |
Биты статуса не изменяются |
|||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||
Очистка шести битов MSB слова LEO в ОЗУ: |
||||||
Пример |
BIC #0FC00h,LEO |
;очистка 6-ти битов MSB в слове |
||||
;памяти (LEO) |
||||||
Очистка пяти битов MSB байта LEO в ОЗУ: |
||||||
Пример |
BIC.B #0F8h,LEO |
;очистка 5-ти битов MSB в ОЗУ |
||||
;в байте LEO |
||||||
Библиотека Компэла |
||||||
58 |
||||||
Раздел III. |
16-разрядное RISC CPU |
||||
BIS[.W] |
Установка битов получателя |
||||
BIS.B |
Установка битов получателя |
||||
Синтаксис |
BIS src,dst или BIS.W src,dst |
||||
BISC.B src,dst |
|||||
Операция |
src .OR. dst → dst |
||||
Над операндом источника и операндом получателя выполняется операция |
|||||
Описание |
логического «ИЛИ» (логическое сложение). Результат помещается в получа- |
||||
тель. Операнд источника не изменяется. |
|||||
Биты статуса |
Биты статуса не изменяются |
||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
||||
Установка шести LSB-битов слова TOM в ОЗУ: |
|||||
Пример |
BIS #003Fh, TOM |
;установка 6-ти LSB-битов слова TOM |
|||
;в ОЗУ |
|||||
Установка трех MSB-битов байта LEO в ОЗУ: |
|||||
Пример |
BIS.B #0E0h,TOM |
;установка 3-х MSB-битов в байте |
|||
;TOM в ОЗУ |
|||||
BIT[.W] |
Проверка битов получателя |
||||
BIT.B |
Проверка битов получателя |
||||
Синтаксис |
BIT src,dst или BIT.W src,dst |
||||
Операция |
src .AND. dst |
||||
Над операндом источника и операндом получателя выполняется операция |
|||||
Описание |
логического «И» (логическое умножение). Результат влияет только на биты |
||||
статуса. Операнды источника и получателя не изменяются. |
|||||
N: |
Устанавливается, если установлен MSB результата, иначе сбрасы- |
||||
вается |
|||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
||||
Биты статуса |
вается |
||||
C: |
Устанавливается, если результат не «0»; в противном случае сбра- |
||||
сывается (.NOT. Zero) |
|||||
V: |
Сбрасывается |
||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
||||
Если бит 9 регистра R8 установлен, выполняется переход к метке TOM: |
|||||
Пример |
BIT #0200h, R8 |
;бит 9 регистра R8 установлен? |
|||
JNZ TOM |
;Да, переход к метке TOM |
||||
… |
;Нет, продолжение программы |
||||
Пример |
Если бит 3 регистра R8 установлен, выполняется переход к метке TOM: |
||||
BIT #8, R8JС TOM |
|||||
Библиотека Компэла |
|||||
59 |
|||||