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
SUBX.A | 从目的地址字中减去源地址字 | ||
SUBX.[W] | 将源字从目的字中减去 | ||
SUBX.B | 将源字节从目的字节中减去 | ||
语法 | SUBX.A src,dst | ||
SUBX src,dst 或 SUBX.W src,dst | |||
SUBX.B src,dst | |||
操作 | (.not. src) + 1 + dst → dst 或 dst – src → dst | ||
说明 | 从目的操作数中减去源操作数。这通过在目的中增加源 + 1 的 1s 补数来完成。源操作数不受影响。结果被写入目的操作数。两个操作数都位于完全地址空间内。 | ||
状态位 | N: | 如果结果为负 (src>dst),则置 1,如果为正则复位 (src≤dst) | |
Z: | 如果为零 (src=dst) 则置 1,否则复位 (src≠dst) | ||
C: | 如果有来自 MSB 的进位,则置 1,否则复位 | ||
V: | 如果从一个正目的操作数中减去一个负源操作数得到一个负结果,或者如果从一个负目的操作数中减去一个正源操作数得到一个正结果,则置 1,否则复位(无溢出)。 | ||
模式位 | OSCOFF,CPUOFF 和 GIE 不受影响。 | ||
示例 | 从 EDE (LSB) 和 EDE+2 (MSB) 中减去一个 20 位 常数 87654h。 |
SUBX.A #87654h,EDE ; Subtract 87654h from EDE+2|EDE
示例 | R5(20 位地址)指向的一个表格字被从 R7 中减去。指令后,如果 R7 包含零,则跳转至标签 TONI。R5 自动增量 2。R7.19:16=0 |
SUBX.W @R5+,R7 ; Subtract table number from R7.R5 + 2
JZ TONI ; R7 = @R5 (before subtraction)
... ; R7 <> @R5 (before subtraction)
示例 | 从指向完全地址空间的字节 R12 中减去字节 CNT。地址 CNT 在 PC±512K 内。 |
SUBX.B CNT,0(R12) ; Subtract CNT from @R12
注意:在以下两种情况下使用 SUBA 以实现更佳的密度和执行。 |
SUBX.A Rsrc,Rdst
SUBX.A #imm20,Rdst