Instruction Syntax and Addressing Modes
4-15
Assembly Language Instructions
4.3.5
Indirect Addressing
Indirect addressing uses one of 8 registers (R0...R7) to point memory
addresses. The selected register can be post-modified. Modifications include
increments, decrements, or increments by the value in the index register (R5).
For post-modifications, the register increments or decrements itself by 2 for
word operands and by 1 for byte operands. Syntaxes are shown in Table 4–9.
Table 4–9. Indirect Addressing Syntax
Syntax
Operation
name [dest,] [src,] ,*Rx++R5 [, next A]
name *Rx++R5 [, src] [, next A]
Premodify accumulator pointer if
next A is included. Add Rx with R5.
name [dest,] [src,] ,*Rx [, next A]
name *Rx [, src] [, next A]
Premodify accumulator pointer if
next A is included. Use address
pointed by R
x, Rx content unchanged
name [dest,] [src,] ,*Rx++ [, next A]
name *Rx++ [, src] [, next A]
Premodify accumulator pointer if
next A is included. Use address
pointed by R
x, post increment Rx after use
name [dest,] [src,] ,*Rx– – [, next A]
name *Rx– – [, src] [, next A]
Premodify accumulator pointer if
next A is included. Use address
pointed by R
x, post decrement Rx after use
Address
Memory Operand
++
– –
++R5
Rx
(x = 0 – 7)
Note that the R
x registers treats data memory as a series of bytes. Therefore,
when a word is loaded, R
x++ increments by 2 (Rx– – decrements by 2). When
loading a word address into R
x, the address must be converted into a byte ad-
dress (by multiplying by 2). For example, if we want R
x to point to the word ad-
dress, 0x100, R
x should be loaded with 0x100*2=0x200.
Example 4.3.10
MOV A1~, *R1++R5, ++A
Refer to the initial processor state in Table 4–8 before execution of this
instruction. Preincrement AP1. After preincrement A1 is AC22 and A1~ is AC6.
The contents of the data memory location stored in R1 are loaded into
accumulator AC6. R1 is then incremented by R5. Final result, AP1=22, AC6
= 0xacb, R1 = R1 + R5 = 0x0202. Note that the addressing of the R
x registers
is byte addressing.
Example 4.3.11
ADD A3~, A3, R6++R5, ––A
Refer to the initial processor state in Table 4–8 before execution of this
instruction. Predecrement AP3. After predecrement, A3 is AC28 and A3~ is
AC12. The contents of the data memory location stored in R6 are added to
AC28. The result is stored in accumulator AC12. R6 is then incremented by
R5. Final result, AP3=28, AC12 = AC28 + *R6 = 0x12AC = 0x244E,
R6 = R6+R5 = 0x3E6. Note that the R
x registers use byte addresses.
Содержание MSP50C614
Страница 1: ...MSP50C614 Mixed Signal Processor User s Guide SPSU014 January 2000 Printed on Recycled Paper ...
Страница 6: ...vi ...
Страница 92: ...3 22 ...
Страница 300: ...Instruction Set Summay 4 208 Assembly Language Instructions ...
Страница 314: ...Software Emulator 5 14 Figure 5 13 Project Menu Figure 5 14 Project Open Dialog ...
Страница 325: ...Software Emulator 5 25 Code Development Tools Figure 5 25 EPROM Programming Dialog ...
Страница 331: ...Software Emulator 5 31 Code Development Tools Figure 5 31 Context Sensitive Help System ...
Страница 368: ...5 68 ...
Страница 394: ...7 12 ...
Страница 400: ...Architecture A 6 Figure A 3 MSP50C605 100 Pin PJM Package MSP50C605 100 PIN PJM PLASTIC PACKAGE 1 80 81 100 30 31 50 51 ...
Страница 402: ...A 8 ...
Страница 412: ...Packaging B 10 ...
Страница 414: ...C 2 C 1 MSP50C605 Data Sheet This appendix contains the data sheet for the MSP50C605 mixed signal pro cessor ...