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
指令映射显示在图 3-12中,而完整指令集汇总于表 3-17中。
助记符 | 说明 | V | N | Z | C | ||
---|---|---|---|---|---|---|---|
ADC(.B) (1) | dst | 将 C 加到目标上 | dst+C→dst | * | * | * | * |
ADD(.B) | src,dst | 将源加至目的 | src+dst→dst | * | * | * | * |
ADDC(.B) | src,dst | 将源和 C 加到目标上 | src+dst+C→dst | * | * | * | * |
AND(.B) | src,dst | 对源和目标执行与运算 | src .and. dst → dst | 0 | * | * | * |
BIC(.B) | src,dst | 清除目的中的位 | not.src .and. dst → dst | - | - | - | - |
BIS(.B) | src,dst | 设定目的中的位 | src .or. dst → dst | - | - | - | - |
BIT(.B) | src,dst | 测试目的中的位 | src .and. dst | 0 | * | * | * |
BR (1) | dst | 跳转到目标 | dst→PC | - | - | - | - |
CALL | dst | 调用目标 | PC+2 → stack, dst → PC | - | - | - | - |
CLR(.B) (1) | dst | 清零目的操作数 | 0→dst | - | - | - | - |
CLRC (1) | 清零 C | 0→C | - | - | - | 0 | |
CLRN (1) | 清零 N | 0→N | - | 0 | - | - | |
CLRZ (1) | 清零 Z | 0→Z | - | - | 0 | - | |
CMP(.B) | src,dst | 比较源和目的 | dst-src | * | * | * | * |
DADC(.B) (1) | dst | 将 C 以十进制格式加到目标上 | dst+C→dst(用十进制) | * | * | * | * |
DADD(.B) | src,dst | 将源和 C 以十进制格式加到 dst 上 | src+dst+C→dst(用十进制) | * | * | * | * |
DEC(.B) (1) | dst | 递减目的 | dst – 1 → dst | * | * | * | * |
DECD(.B) (1) | dst | 双递减目的 | dst – 2 → dst | * | * | * | * |
DINT (1) | 禁用中断 | 0→GIE | - | - | - | - | |
EINT (1) | 启用中断 | 1→GIE | - | - | - | - | |
INC(.B) (1) | dst | 递增目的 | dst +1 → dst | * | * | * | * |
INCD(.B) (1) | dst | 双递增目的 | dst + 2 → dst | * | * | * | * |
INV(.B) (1) | dst | 反转目的 | .not.dst→dst | * | * | * | * |
JC/JHS | 标签[label] | 如果设置 C,则跳转/如果更高或相同,则跳转 | - | - | - | - | |
JEQ/JZ | 标签[label] | 如果相等,则跳转/如果设置 Z,则跳转 | - | - | - | - | |
JGE | 标签[label] | 如果大于或相等,则跳转。 | - | - | - | - | |
JL | 标签[label] | 如果少于则跳转 | - | - | - | - | |
JMP | 标签[label] | 跳转 | PC + 2 × 偏移 → PC | - | - | - | - |
JN | 标签[label] | 如果设置 N,则跳转 | - | - | - | - | |
JNC/JLO | 标签[label] | 如果未设置 C,则跳转/如果更低,则跳转 | - | - | - | - | |
JNE/JNZ | 标签[label] | 如果不相等,则跳转/如果未设置 Z,则跳转 | - | - | - | - | |
MOV(.B) | src,dst | 将源移动到目的 | src→dst | - | - | - | - |
NOP (1) | 无操作 | - | - | - | - | ||
POP(.B) (1) | dst | 将项目从堆栈弹出到目标 | @SP → dst、SP+2 → SP | - | - | - | - |
PUSH(.B) | src | 将源压入堆栈 | SP - 2 → SP、src → @SP | - | - | - | - |
RET (1) | 从子例程返回 | @SP → PC、SP + 2 → SP | - | - | - | - | |
RETI | 从中断返回 | * | * | * | * | ||
RLA(.B) (1) | dst | 算术左旋 | * | * | * | * | |
RLC(.B) (1) | dst | 带 C 的循环左移 | * | * | * | * | |
RRA(.B) | dst | 算术右旋转 | 0 | * | * | * | |
RRC(.B) | dst | 带 C 的循环右移 | * | * | * | * | |
SBC(.B) (1) | dst | 从目标中减去 C 的反码 | dst+0FFFFh+C→dst | * | * | * | * |
SETC (1) | 置位 C | 1→C | - | - | - | 1 | |
SETN (1) | 置位 N | 1→N | - | 1 | - | - | |
SETZ (1) | 置位 Z | 1→Z | - | - | 1 | - | |
SUB(.B) | src,dst | 从目的中减去源 | dst+.not.src+1→dst | * | * | * | * |
SUBC(.B) | src,dst | 从 dst 中减去源和 C 的反码 | dst+.not.src+C→dst | * | * | * | * |
SWPB | dst | 交换字节 | - | - | - | - | |
SXT | dst | 扩展符 | 0 | * | * | * | |
TST(.B) (1) | dst | 测试目的操作数 | dst+0FFFFh+1 | 0 | * | * | 1 |
XOR(.B) | src,dst | 将源和目标进行异或运算 | src .xor. dst → dst | * | * | * | * |