Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- TMS320C2x DSP - the tms320c2x provides a register file containing up to eight http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
      The TMS320C2x provides a register file containing up to eight
      auxiliary registers (AR0-AR7). The TMS32020 has five auxiliary
      registers and the TMS320C25 eight.

      The auxiliary registers may be used for indirect addressing of data
      memory or for temporary data storage. Indirect auxiliary register
      addressing allows placement of the data memory address of an
      instruction operand into one of the auxiliary registers. These
      registers are pointed to by a 3-bit auxiliary register pointer (ARP)
      that is loaded with a value of 0 through 7, designating AR0 through
      AR7, respectively. The auxiliary registers and the ARP may be loaded
      from data memory or by an immediate operand defined in the
      instruction. The contents of these registers may also be stored in
      data memory (see also "indirect fields").

      The auxiliary register file (AR0-AR4/AR0-AR7 TMS32020/TMS320C25) is
      connected to the Auxiliary Register Arithmetic Unit (ARAU). The ARAU
      may autoindex the current auxiliary register while the data memory
      location is being addressed. Indexing by +/-1 or by the contents of
      AR0 may be performed. As a result, accessing tables of information
      does not require the Central Arithmetic Logic Unit (CALU) for
      address manipulation, thus freeing it for other operations.
      The ARAU performs the following fuctions:

            AR(ARP) + AR0 . AR(ARP)    Index the current AR by adding
                  a 16-bit integer contained in AR0.
            AR(ARP) - AR0 . AR(ARP)    Index the current AR by
                  subtracting a 16-bit integer contained in AR0.
            AR(ARP) + 1 . AR(ARP)      Increment the current AR by one.
            AR(ARP) - 1 . AR(ARP)      Decrement the current AR by one.
            AR(ARP)     . AR(ARP)      AR(ARP) is unchanged.

      In addition to the above functions, the ARAU on the TMS320C25
      performs functions:

            AR(ARP) + IR(7-0) . AR(ARP) Add 8-bit immediate value to
                  the current AR.
            AR(ARP) - IR(7-0) . AR(ARP) Subtract 8-bit immediate value
                  from the current AR.
            AR(ARP) + rcAR0 . AR(ARP)   Bit-reversed indexing, add AR0
                  with reverse-carry (rc) propagation.
            AR(ARP) - rcAR0 . AR(ARP)   Bit-reversed indexing, subtract
                  AR0 with reverse-carry (rc) propagation.

      Although the ARAU is useful for address manipulation in parallel
      with other operations, it may also serve as an additional general-
      purpose arithmetic unit since the auxiliary register file can
      directly communicate with data memory. The ARAU implements 16-bit
      unsigned arithmetic, whereas CALU implements 32-bit two's complement
      arithmetic. Instructions provide branches dependent on the
      comparison of the auxiliary register pointed to by the ARP with AR0.
      The BANZ instruction permits the auxiliary registers to also be used
      as loop counters.

      The 3-bit auxiliary register pointer buffer (ARB) provides storage
      for the ARP on subroutine calls and interrupts.

See Also: indirect fields

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson