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 |