Keil™, An ARM® Company

Technical Support

A166: ERROR A25 (SYMBOL REDEFINITION)


Information in this article applies to:

  • C166 Version 3.12
  • C166 Version 4.06

SYMPTOMS

I'm trying to use local symbols in my A166 Assembler Macros, and I receive the following error message:

00000010 06F10200          22             ADD     (R1), #2
                           23     ??MYLABEL?0:
*** ______________________________^
*** ERROR #A25 IN 23 (.\main.a66, LINE 14): SYMBOL REDEFINITION

What's wrong with my program?

$SEGMENTED

%*DEFINE (MyMacro Register) LOCAL MyLabel (
        SUB     %Register, #1
        JMP     cc_NN, %MyLabel
        ADD     %Register, #2
%MyLabel:
)

C1      SECTION CODE    PUBLIC
P1      PROC    NEAR

        %MyMacro        (R0)
        %MyMacro        (R1)

P1      ENDP
C1      ENDS

END

CAUSE

The argument list for your macro needs to be enclosed within parentheses. For example:

%*DEFINE (MyMacro (Register)) LOCAL MyLabel (

RESOLUTION

Change your macro definition to include the parentheses to solve this problem.

Last Reviewed: Wednesday, October 18, 2000


Did this article provide the answer you needed?
 
Yes
No
Not Sure