<< Chapter < Page Chapter >> Page >

Addressing modes

The MSP430 supports seven addressing modes for the source operand and four addressing modes for the destination operand (see bellow). The following sections describe each of the addressing modes, with a brief description, an example and the number of CPU clock cycles required for an instruction, depending on the instruction format and the addressing modes used.

Mode Source operand Destination operand Description
Register mode X X Single cycle
Indexed mode X X Table processing
Symbolic mode X X Easy to read code, PC relative
Absolute mode X X Directly access any memory location
Indirect register mode X Access memory with pointers
Indirect auto increment mode X Table processing
Immediate mode X Unrestricted constant values

Before describing the addressing modes, it is important to mention the clock cycles required by interrupts and resets.

Action Cycles Length (words)
Return from interrupt 5 1
Interrupt accepted 6 -
Watchdog timer reset 4 -
Hard reset 4 -

Register mode

Register mode operations work directly on the processor registers, R4 through R15, or on special function registers, such as the program counter or status register. They are very efficient in terms of both instruction speed and code space.

Description: Register contents are operands.

Source mode bits: As = 00 (source register defined in the opcode).

Destination mode bit: Ad=0 (destination register defined in the opcode).

Syntax: Rn.

Length: One or two words.

Comment: Valid for source and destination.

Example 1: Move (copy) the contents of source (register R4) to destination (register R5). Register R4 is not affected.

Before operation: R4=A002h R5=F50Ah PC = PC pos

Operation: MOV R4, R5

After operation: R4=A002h R5=A002h PC = PC pos + 2

The first operand is in register mode and depending on the second operand mode, the cycles required to complete an instruction will differ. The next table shows the cycles required to complete an instruction, depending on the second operand mode.

Operands 2 nd operand mode Operator Cycles Length (words)
2 Register Any 1* 1
2 Indexed, Symbolic or Absolute Any 4 2
1 N/A RRA, RRC, SWPB or SXT 1 1
1 N/A PUSH 3 1
1 N/A CALL 4 1

Indexed mode

The Indexed mode commands are formatted as X(Rn), where X is a constant and Rn is one of the CPU registers. The absolute memory location X+Rn is addressed. Indexed mode addressing is useful for applications such as lookup tables.

Description: (Rn + X) points to the operand. X is stored in the next word.

Source mode bits: As = 01 (memory location is defined by the word immediately following the opcode).

Destination mode bit: Ad=1 (memory location is defined by the word immediately following the opcode).

Syntax: X(Rn).

Length: Two or three words.

Comment: Valid for source and destination.

Example 2: Move (copy) the contents at source address (F000h + R5) to destination (register R4).

Before operation: R4=A002h R5=050Ah Loc:0xF50A=0123h

Operation: MOV F000h(R5), R4

After operation: R4=0123h R5=050Ah Loc:0xF50A=0123h

Operands 2 nd operand mode Operator Cycles Length (words)
2 Register Any 3 2
2 Indexed, Symbolic or Absolute Any 6 3
1 N/A RRA, RRC, SWPB or SXT 4 2
1 N/A CALL or PUSH 5 2

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials. OpenStax CNX. May 19, 2009 Download for free at http://cnx.org/content/col10706/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials' conversation and receive update notifications?

Ask