This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Auxiliary register in TMS320C5505

Other Parts Discussed in Thread: TMS320C5505

Hi, 

  am writing assembly coding for TMS320C5505 , I NEED to load a Auxiliary register . kindly let me know some instruction to load .... i done basic addition program with memory and using registers.

.text ; Indicates that what follows is code
.def _c_int00 ; This symbol is defined in this file but used in another file

_c_int00:
MOV #100h,*(#010000h)
MOV #10h,AC0
ADD #1h,*(#010000h)
ADD #1h,AC0

 

am trying to use aux  register, i dont know to load., and how to read., please give some basic addition example for Absolute , Direct , Indirect , circular addressing mode ..... 

  • Hi,

    Team will address your request and will update shortly.

    Thanks & regards,
    Sivaraj K

  • The following documents should help you out:

    C55x v3.x CPU Algebraic Instruction Set Reference Guide: http://www.ti.com/lit/ug/swpu068e/swpu068e.pdf (Sections 5-199, 5-205,etc.)

    TMS320C55x v3.x DSP Mnemonic Instruction Set Reference Guide (Rev. E): http://www.ti.com/lit/ug/swpu067e/swpu067e.pdf (Sections 5-363, 5-367, etc.)

    Best Regards. 

  • I'm sorry, I don't know quite what you intend to do.  When you say "auxiliary register," do you mean an ARn register, an XARn register, or some memory-mapped peripheral register?  Here are some quick examples of addressing modes:

     ADD #1, *(#10000h) ; absolute addressing mode
    
     BCLR CPL, ST1_55
     ADD #1,@#01h ; direct addressing mode (DP-relative)
    
     BSET CPL, ST1_55
     ADD #1, *SP(#1) ; direct addressing mode (SP-relative)
    
     ADD #1, *AR0 ; indirect addressing mode
    

    Circular addressing mode is a bit more complicated; why do you need to use it?

  • hi, 

    I understood Absolute addressing mode. 

    Direct and Indirect addressing mode , what is ST1_55, SP ????

    Indirect Addressing mode, ADD #1,*AR0 . in this , we want to load address to  AR0 register , what instruction and which instruction is suitable to load this address 0x10000 to AR0 Register  . 

    Many Thanks

    Thiyagarajan.S

  • SP is the stack pointer register.

    ST1_55 is status register number one.  It has control bits that control how instructions are interpreted, such as CPL, which stands for "compiler addressing mode."  It changes how instructions using direct addressing are decoded.  If you are using C code in your project, you should set CPL=1 and leave it that way, and then you can use SP-relative addressing.  When CPL=0, you can use DP-relative addressing, but I would recommend sticking with CPL=1.

    To load an address constant into a register, use one of the following instructions. The best choice depends on your memory model, whether all of your data is on page 0, and whether you will be using the value somewhere other than an addressing mode. If you are not sure about these facts, use the first one, which will work for all modes.

            AMOV #0x123456, XAR0
            AMAR *(#0x123456), XAR0
            AMAR *abs16(#0x1234), XAR0
            AMOV #0x1234, AR0
            MOV #0x1234, AR0