Special CharactersInstruction Delimiting          a0= r3.h * r2.l, a1 = r3.l * r2.h ;
     
     The second case occurs when a general instruction is combined with one or two memory references for joint issue. The latter portions are set off by a "||" token.
          a0 = r3.h * r2.l || r1 = [p3++] || r4 = [i2++];
     
     Register NamesRegister names are reserved and may not be used as program identifiers.
Some operations (such as "Move Register") require a register pair. Register pairs are always data registers and are denoted using a colon, eg., R3:2. The larger number must be written firsts. Note that the hardware only supports odd-even pairs, eg., R7:6, R5:4, R3:2, and R1:0.
Some instructions (such as –SP (Push Multiple)) require a group of adjacent registers. Adjacent registers are denoted in the syntax by the range enclosed in parentheses and separated by a colon, eg., (R7:3). Again, the larger number appears first.
Portions of a particular register may be individually specified.  This
is written with a dot (".") following the register name and then a
letter denoting the desired portion.  For 32-bit registers, ".H"
denotes the most significant ("High") portion.  ".L" denotes the
least-significant portion.  The subdivisions of the 40-bit registers
are described later.
     
Accumulatorsone 40-bit registerone 32-bit registertwo 16-bit registersone 8-bit registerData Registers             R7.L, r2.h, r4.L, R0.H
     
     Pointer Registers          p2, p5, fp, sp
     
     Stack Pointer SPFrame Pointer FPLoop TopLoop CountLoop BottomIndex RegistersModify RegistersLength RegistersBase RegistersFloating PointBlackfin Opcodes