Файл: Семейство микроконтроллеров 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