Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 2824
Скачиваний: 1
Раздел III. |
16-разрядное RISC CPU |
|||
Операнд источника вычитается из операнда получателя путем прибавления |
||||
Описание |
дополнения до единицы операнда источника и бита переноса (С) к операнду |
|||
получателя. Операнд источника не изменяется. Предыдущее содержимое |
||||
получателя теряется. |
||||
N: |
Устанавливается, если результат отрицательный; сбрасывается, |
|||
если положительный. |
||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
|||
вается. |
||||
Биты статуса |
||||
Устанавливается, если есть перенос из старшего бита MSB резуль- |
||||
C: |
тата, в противном случае сбрасывается.Устанавливается в «1», если |
|||
нет заема; сбрасывается, если был заем. |
||||
V: |
Устанавливается, если произошло арифметическое переполнение, |
|||
в противном случае сбрасывается |
||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||
Вычитаются две мантиссы (24-разрядные) с плавающей точкой. Младшие |
||||
Пример |
байты LSB находятся в R13 и R10, старшие байты MSB находятся в R12 и R9. |
|||
SUB.W |
R13,R10 |
;16-разрядная часть, LSB |
||
SUBC.B |
R12,R9 |
;8-разрядная часть, MSB |
||
Содержимое 16-разрядного счетчика, указанного в R13, вычитается из 16- |
||||
разрядного счетчика, находящегося в регистрах R10 и R11(MSD). |
||||
SUB.B |
@R13+,R10 ;Вычитание младших байтов LSB без |
|||
SUBC.B |
;переноса |
|||
Пример |
@R13,R11 ;Вычитание старших байтов MSB |
|||
… |
;с переносом, |
|||
;возникшим в результате |
||||
… |
;выполнения |
|||
;операции над младшими байтами LSB |
||||
Примечание: реализация заема
Заем обрабатывается как операция .NOT. переноса:
Заем |
Да |
Нет |
|||
Бит переноса |
0 |
1 |
|||
SWPB |
Обмен байтами |
||||
Синтаксис |
SWPB dst |
||||
Операция |
Биты с 15 по 8 « биты с 7 по 0 |
||||
Описание |
Старший и младший байты операнда получателя меняется местами, как |
||||
показано на рис. 3.18 |
|||||
Биты статуса |
Биты статуса не изменяются |
||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
||||
Пример |
MOV |
#040BFh,R7 |
;0100000010111111 → R7 |
||
SWPB |
R7 |
;1011111101000000 в R7 |
|||
Библиотека Компэла |
|||||
87 |
|||||
MSP430x1xxFamily
Содержимое R5 умножается на 255. Результат сохраняется в R5, R4.
SWPB |
R5 |
; |
|
Пример |
MOV |
R5, R4 |
;копирование значения после обмена |
BIC |
#0FF00h, R5 |
;в R4 |
|
;корректировка результата |
|||
BIC |
#00FFh, R4 |
;корректировка результата |
Рис. 3-18. Обмен байтов в операнде получателя |
||||||||
SXT |
Распространение знака |
|||||||
Синтаксис |
SXT dst |
|||||||
Операция |
Бит 7 → в биты с 8 по 15 |
|||||||
Описание |
Знак младшего байта распространяется в старшем байте, как показано на |
|||||||
рис. 3.19. |
||||||||
Биты статуса |
Биты статуса не изменяются |
|||||||
N: |
Устанавливается, если результат отрицательный; сбрасывается, |
|||||||
если положительный. |
||||||||
Z: |
Устанавливается, если результат «0», в противном случае сбрасы- |
|||||||
Биты статуса |
вается. |
|||||||
C: |
Устанавливается, если результат не ноль, в противном случае сбра- |
|||||||
сывается (.NOT. Zero) |
||||||||
V: |
Сбрасывается |
|||||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||||
В R7 загружается значение P1IN. Команда распространения знака выполняет |
||||||||
Пример |
операцию развертывания значения бита 7 в биты с 8 по 15. |
|||||||
MOV.B &P1IN,R7 |
;P1IN = 080h: |
.... .... 1000 0000 |
||||||
SXT |
R7 |
;R7 = 0FF80h: |
1111 1111 1000 0000 |
|||||
Библиотека Компэла |
||||||||
88 |
||||||||
Раздел III. |
16-разрядное RISC CPU |
Рис. 3-19. Распространение знака операнда получателя |
||||||||
*TST[.W] |
Проверка получателя |
|||||||
*TST.B |
Проверка получателя |
|||||||
Синтаксис |
TST dst или TST.W dst |
|||||||
TST.B dst |
||||||||
Операция |
dst + 0FFFFh + 1 |
|||||||
dst + 0FFh + 1 |
||||||||
Эмуляция |
CMP |
#0, dst |
||||||
CMP.B #0, dst |
||||||||
Описание |
Операнд получателя сравнивается с нулем. Биты статуса устанавливаются в |
|||||||
соответствии с результатом сравнения. Получатель не изменяется. |
||||||||
N: |
Устанавливается, если результат отрицательный; сбрасывается, |
|||||||
если положительный. |
||||||||
Биты статуса |
Z: |
Устанавливается, если результат содержит «0», в противном случае |
||||||
сбрасывается. |
||||||||
C: |
Устанавливается |
|||||||
V: |
Сбрасывается |
|||||||
Биты режима |
Биты OSCOFF, CPUOFF и GIE не изменяются |
|||||||
Проверяется R7. Если его содержимое отрицательно, программа продол- |
||||||||
жается с метки R7NEG; если положительно, но не равно нулю, выполняется |
||||||||
переход к метке R7POS. |
;проверка R7 |
|||||||
Пример |
TST |
R7 |
||||||
JN |
R7NEG |
;содержимое R7 отрицательно |
||||||
R7POS |
JZ |
R7ZERO ;R7 содержит ноль |
||||||
… |
;содержимое R7 положительное, но не 0 |
|||||||
R7NEG |
… |
;содержимое R7 отрицательное |
||||||
R7ZERO … |
;R7 содержит ноль |
|||||||
Библиотека Компэла |
||||||||
89 |
||||||||
MSP430x1xxFamily
Проверяется младший байт регистра R7. Если его содержимое отрицательно, программа продолжается с метки R7NEG; если положительно, но не равно нулю, выполняется переход к метке R7POS.
TST.B |
R7 |
;проверка младшего байта R7 |
||
Пример |
JN |
R7NEG |
;младший байт R7 |
отрицателен |
R7POS |
JZ |
R7ZERO ;младший байт R7 |
содержит ноль |
|
… |
;младший байт R7 |
положителен, |
||
R7NEG |
… |
;но не 0 |
отрицателен |
|
;младший байт R7 |
||||
R7ZERO |
… |
;младший байт R7 |
содержит ноль |
|
XOR[.W] Исключающее «ИЛИ» источника и получателя
XOR.B Исключающее «ИЛИ» источника и получателя
XOR src, dst или XOR.W src, dst
Синтаксис
XOR.B src, dst
Операция src .XOR. dst → dst
Над операндами источника и получателя выполняется операция логического Описание «ИЛИ» (OR). Результат помещается в получатель. Операнд источника не
изменяется.
N: |
Устанавливается, если установлен MSB результата; сбрасывается, |
||
если не установлен. |
|||
Z: |
Устанавливается, если результат содержит «0», в противном случае |
||
сбрасывается. |
|||
Биты статуса |
|||
C: |
Устанавливается, если результат не ноль, в противном случае сбра- |
||
сывается (= .NOT. Zero) |
|||
V: |
Устанавливается, если оба операнда отрицательны |
||
Биты режима Биты OSCOFF, CPUOFF и GIE не изменяются
Биты, установленные в регистре R6 переключают биты в слове ОЗУ TONI.
Пример |
XOR R6,TONI |
;Переключение битов слова TONI |
|||
;в соответствии с битами, |
|||||
;установленными в R6 |
|||||
Биты, установленные в регистре R6 переключают биты в байте ОЗУ TONI. |
|||||
XOR.B |
R6,TONI ;Переключение битов байта TONI |
||||
Пример |
;в соответствии с битами, |
||||
;установленными в младшем байте |
|||||
;регистра R6 |
|||||
Обнуление битов в младшем байте регистра R7, которые отличаются от соот- |
|||||
ветствующих битов байта ОЗУ EDE. |
|||||
Пример |
XOR.B |
EDE,R7 |
;Установка отличающихся битов в «1» |
||
INV.B |
R7 |
;Инвертирование младшего байта R7, |
|||
;в старшем байтe «0h» |
|||||
Библиотека Компэла |
|||||
90 |
|||||