Texas Instruments MSP430x4xx User Manual

Page 109

Advertising
background image

Instruction Set

3-75

RISC 16−Bit CPU

Table 3−17.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

*

*

*

BR

†

dst

Branch to destination

dst

→

PC

−

−

−

−

CALL

dst

Call destination

PC+2

→

stack, dst

→

PC

−

−

−

−

CLR(.B)

†

dst

Clear destination

0

→

dst

−

−

−

−

CLRC

†

Clear C

0

→

C

−

−

−

0

CLRN

†

Clear N

0

→

N

−

0

−

−

CLRZ

†

Clear 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

*

*

*

*

DINT

†

Disable interrupts

0

→

GIE

−

−

−

−

EINT

†

Enable 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

−

−

−

−

NOP

†

No 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

−

−

−

−

RET

†

Return 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

*

*

*

*

SETC

†

Set C

1

→

C

−

−

−

1

SETN

†

Set N

1

→

N

−

1

−

−

SETZ

†

Set 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

Advertising