ZHCU032K December 2004 – August 2022 MSP430AFE221 , MSP430AFE222 , MSP430AFE223 , MSP430AFE231 , MSP430AFE232 , MSP430AFE233 , MSP430AFE251 , MSP430AFE252 , MSP430AFE253 , MSP430F2001 , MSP430F2002 , MSP430F2003 , MSP430F2011 , MSP430F2012 , MSP430F2013 , MSP430F2101 , MSP430F2111 , MSP430F2112 , MSP430F2121 , MSP430F2122 , MSP430F2131 , MSP430F2132 , MSP430F2132-EP , MSP430F2232 , MSP430F2234 , MSP430F2252 , MSP430F2252-Q1 , MSP430F2254 , MSP430F2272 , MSP430F2272-Q1 , MSP430F2274 , MSP430F2274-EP , MSP430F233 , MSP430F2330 , MSP430F235 , MSP430F2350 , MSP430F2370 , MSP430F2410 , MSP430F2416 , MSP430F2417 , MSP430F2418 , MSP430F2419 , MSP430F247 , MSP430F2471 , MSP430F248 , MSP430F2481 , MSP430F249 , MSP430F2491 , MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619 , MSP430G2001 , MSP430G2101 , MSP430G2102 , MSP430G2111 , MSP430G2112 , MSP430G2121 , MSP430G2131 , MSP430G2132 , MSP430G2152 , MSP430G2153 , MSP430G2201 , MSP430G2201-Q1 , MSP430G2202 , MSP430G2203 , MSP430G2210 , MSP430G2211 , MSP430G2212 , MSP430G2213 , MSP430G2221 , MSP430G2230 , MSP430G2231 , MSP430G2231-Q1 , MSP430G2232 , MSP430G2233 , MSP430G2252 , MSP430G2253 , MSP430G2302 , MSP430G2303 , MSP430G2312 , MSP430G2313 , MSP430G2332 , MSP430G2333 , MSP430G2352 , MSP430G2353 , MSP430G2402 , MSP430G2403 , MSP430G2412 , MSP430G2413 , MSP430G2432 , MSP430G2433 , MSP430G2444 , MSP430G2452 , MSP430G2453 , MSP430G2513 , MSP430G2533 , MSP430G2544 , MSP430G2553 , MSP430G2744 , MSP430G2755 , MSP430G2855 , MSP430G2955 , MSP430TCH5E
* DADD[.W] | 增加源字和十进制进位至目的字 | |
* DADD.B | 增加源字节和十进制进位至目的字节 | |
语法 | DADD src,dst 或 DADD.W src,dst | |
DADD.B src,dst | ||
运行 | src+dst+C→dst(用十进制) | |
说明 | 源操作数和目的操作数被视为具有正符号的两个 (.B) 或者四个 (.W) 的二进制编码的十进制 (BCD)。源操作数和进位位 C 以十进制格式加到目标操作数。源操作数不受影响。目的操作数之前的内容丢失。此结果不针对非 BCD 数定义。 | |
状态位 | N: | 如果结果的 MSB 为 1(字 > 7999h,字节 > 79h),则置 1,如果 MSB 为 0,则复位 |
Z: | 如果结果为零,则置 1;否则复位 | |
C: | 如果 BCD 结果太大(字 > 9999h,字节 > 99h),则置 1;否则复位 | |
V: | 未定义 | |
模式位 | OSCOFF,CPUOFF 和 GIE 不受影响。 | |
示例 | 十进制数 10 被增加 16 位 BCD 计数器 DECCNTR。 |
DADD #10h,&DECCNTR ; Add 10 to 4-digit BCD counter
示例 | 包含在 16 位 RAM 地址 BCD 和 BCD+2 中的 8 位 BCD 数被用十进制加入到包含在 R4 和 R5 中的一个 8 位 BCD 数中(BCD+2 和 R5 包含 MSD)。进位 C 被增加、清零。 |
CLRC ; Clear carry
DADD.W &BCD,R4 ; Add LSDs.R4.19:16 = 0
DADD.W &BCD+2,R5 ; Add MSDs with carry.R5.19:16 = 0
JC OVERFLOW ; Result >9999,9999: go to error routine
... ; Result ok
示例 | 包含在字 BCD 中的两位 BCD 数(16 位地址)被用十进制增加到包含在 R4 中的一个两位 BCD 数中。进位 C 也被加入。R4.19:8 = 0CLRC ; Clear carryDADD.B &BCD,R4 ; Add BCD to R4 decimally.R4: 0,00ddh |
CLRC ; Clear carry
DADD.B &BCD,R4 ; Add BCD to R4 decimally.
R4: 0,00ddh