Instruction Set

3-75

RISC 16Bit CPU

Table 317.MSP430 Instruction Set
Mnemonic Description V N Z C
ADC(.B)dst Add C to destination dst + C dst * * * *
ADD(.B) src,dst Add source to destination src + dst dst ****
ADDC(.B) src,dst Add source and C to destination src + dst + C dst ****
AND(.B) src,dst AND source and destination src .and. dst dst 0 * * *
BIC(.B) src,dst Clear bits in destination .not.src .and. dst dst −−−−
BIS(.B) src,dst Set bits in destination src .or. dst dst −−−−
BIT(.B) src,dst Test bits in destination src .and. dst 0 * * *
BRdst Branch to destination dst PC −−−−
CALL dst Call destination PC+2 stack, dst PC −−−−
CLR(.B)dst Clear destination 0 dst −−−−
CLRCClear C 0 C −−−0
CLRNClear N 0 N 0−−
CLRZClear Z 0 Z −−0
CMP(.B) src,dst Compare source and destination dst src ****
DADC(.B)dst Add C decimally to destination dst + C dst (decimally) ****
DADD(.B) src,dst Add source and C decimally to dst. src + dst + C dst (decimally) ****
DEC(.B)dst Decrement destination dst 1 dst ****
DECD(.B)dst Double-decrement destination dst 2 dst ****
DINTDisable interrupts 0 GIE −−−−
EINTEnable interrupts 1 GIE −−−−
INC(.B)dst Increment destination dst +1 dst ****
INCD(.B)dst Double-increment destination dst+2 dst ****
INV(.B)dst Invert destination .not.dst dst ****
JC/JHS label Jump if C set/Jump if higher or same −−−−
JEQ/JZ label Jump if equal/Jump if Z set −−−−
JGE label Jump if greater or equal −−−−
JL label Jump if less −−−−
JMP label Jump PC + 2 x offset PC −−−−
JN label Jump if N set −−−−
JNC/JLO label Jump if C not set/Jump if lower −−−−
JNE/JNZ label Jump if not equal/Jump if Z not set −−−−
MOV(.B) src,dst Move source to destination src dst −−−−
NOPNo operation −−−−
POP(.B)dst Pop item from stack to destination @SP dst, SP+2 SP −−−−
PUSH(.B) src Push source onto stack SP 2 SP, src @SP −−−−
RETReturn from subroutine @SP PC, SP + 2 SP −−−−
RETI Return from interrupt ****
RLA(.B)dst Rotate left arithmetically ****
RLC(.B)dst Rotate left through C ****
RRA(.B) dst Rotate right arithmetically 0 * * *
RRC(.B) dst Rotate right through C ****
SBC(.B)dst Subtract not(C) from destination dst + 0FFFFh + C dst ****
SETCSet C 1 C −−−1
SETNSet N 1 N 1−−
SETZSet Z 1 C −−1
SUB(.B) src,dst Subtract source from destination dst + .not.src + 1 dst ****
SUBC(.B) src,dst Subtract source and not(C) from dst. dst + .not.src + C dst ****
SWPB dst Swap bytes −−−−
SXT dst Extend sign 0***
TST(.B)dst Test destination dst + 0FFFFh + 1 0 * * 1
XOR(.B) src,dst Exclusive OR source and destination src .xor. dst dst ****
Emulated Instruction