Forums

Pointer Registers VS Index Register

Started by amgab2003 February 15, 2011
Hello,

I'm begginer in dsp programming.
I'm trying to develop a blackfin BF533 module, I want to understand the
difference between the "Pointer Registers" (P0-P5) and the "Index Register"
(I0-I3)

Thank you.


amgab2003 <amine.gaabab@n_o_s_p_a_m.gmail.com> wrote:
 
> I'm trying to develop a blackfin BF533 module, I want to understand the > difference between the "Pointer Registers" (P0-P5) and the "Index Register" > (I0-I3)
Usually, and this is independent of the actual processor, index registers are added to an address, such as to allow indexing through an array. Sometimes there are size differences between index registers and other registers that makes the distinction important, other times there is no difference. Oh, on some systems the index register is automatically scaled by the size of the operand being addressed, convenient for array indexing. -- glen
On 02/15/2011 11:08 AM, amgab2003 wrote:
> Hello, > > I'm begginer in dsp programming. > I'm trying to develop a blackfin BF533 module, I want to understand the > difference between the "Pointer Registers" (P0-P5) and the "Index Register" > (I0-I3)
Have you tried extracting this from the data book? Like Glen said, usually a "pointer" would point to the base of an array, while an "index" would point to an offset from that base. Whatever we may say, the data book is the final word; if you can figure out what it's trying to tell you then go by that. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
Tim Wescott <tim@seemywebsite.com> wrote:
(snip)

> Have you tried extracting this from the data book? Like Glen said, > usually a "pointer" would point to the base of an array, while an > "index" would point to an offset from that base.
For S/360 and S/370, the base and index registers are equivalent, though it might be that on some (early) systems the timing is slightly different. (Zero in the instruction field means not to do that operation.) Many programmers would use the index field, where the base field should be used. (It saves typing one comma.) In the "access register" mode, added I believe in XA, the distinction does become important. (But AR mode is reasonably rare.) Then there was the 6800 vs. 6502, where one uses 16 bit indexing off an 8 bit origin, and the other 8 bit indexing off a 16 bit origin. -- glen