MSP430 система команд - Команда DADD
| DADD[.W] | Десятичное сложение источника, переноса и получателя | |
| DADD.B | Десятичное сложение источника, переноса и получателя | |
| Синтаксис | DADD src,dst или DADD.W src,dst DADD.B src,dst |
|
| Операция | src + dst + C -> dst (десятичное) | |
| Описание | Операнды источника и получателя обрабатываются как четыре двоично-десятичных числа (BCD - Binary Coded Decimal) с положительными знаками. Операнд источника и бит переноса (С) десятично прибавляются к операнду получателя. Операнд источника не изменяется. Предыдущее содержимое получателя теряется. Для чисел, представленных не в BCD-формате, результат не определен. | |
| Биты статуса | N: | Устанавливается, если MSB равен «1»; сбрасывается в противном случае |
| Z: | Устанавливается, если результат равен «0»; в противном случае сбрасывается | |
| C: | Устанавливается, если результат превышает 9999 Устанавливается, если результат превышает 99 |
|
| V: | Не определено | |
| Биты режима | ||
| Пример | Биты OSCOFF, CPUOFF и GIE не изменяются | |
| Пример | BCD-число из восьми цифр, содержащееся в регистрах R5 и R6, десятично прибавляется к BCD-числу из восьми цифр, содержащемуся в регистрах R3 и R4 (регистры R6 и R4 содержат MSD).
CLRС ; очистка переноса
DADD R5,R3 ; сложение LSDs
DADD R6,R4 ; сложение MSDs и переноса
JC OVERFLOW ; если произошел перенос, выполняется переход в
; подпрограмму обработки ошибок
Пример
Десятичный счетчик из двух цифр в байте ОЗУ с меткой «CNT» инкрементируется на единицу.
CLRС ; сброс переноса
DADD.B #1,CNT ; инкремент десятичного счетчика
или
SETC
DADD.B #0,CNT ; = DADC.B CNT
|
|