This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

NOAREG & AREG,

Hello,
I'm having trouble understanding the NOAREG, AREG & USING options. I'm also confused with R0-R7 & AR0-AR7.
I've read the support files and manual but i'm still confused.
May I know
a) How is it that using NOAREGs will allow me to disregard register bank currently used when writing function? ( will the registers be automatically saved to stack? )
b) What is the difference with R0 and AR0? How does the USING option affect R0 & AR0? (for example if i put the option "USING 2", have then use R4, does this mean that it is the actually R20 ie in bank 2, whiel AR4 is not affected by the using function)
c) How does USING help me to save stack space?
Best Regards,
AL

Parents
  • Will the direction #pragma REGISTERBANK(x) apply only for the function that follows this statement, or will it apply untill a new REGISTERBANK direction will be stated ?

    In the following example:

    #pragma REGISTERBANK(3)
    void func1 (void)
    {
     ...
     ...
    }
    
    
    void func2 (void)
    {
     ...
     ...
    }
    

    Will func2 use registerbank 3 as func1, or will it use the deafult register bank 0 ?

    Should I write #pragma REGISTERBANK(0) before func2 declaration in order to compile func2 using the deafult register bank (0) ?

Reply
  • Will the direction #pragma REGISTERBANK(x) apply only for the function that follows this statement, or will it apply untill a new REGISTERBANK direction will be stated ?

    In the following example:

    #pragma REGISTERBANK(3)
    void func1 (void)
    {
     ...
     ...
    }
    
    
    void func2 (void)
    {
     ...
     ...
    }
    

    Will func2 use registerbank 3 as func1, or will it use the deafult register bank 0 ?

    Should I write #pragma REGISTERBANK(0) before func2 declaration in order to compile func2 using the deafult register bank (0) ?

Children