Dear all, When porting GCC on xc16x, I met a problem with a constant string. The following is the C code: #include "stdio.h"
int main () { printf ("c\n"); } And the following is the generated assembly: .xc16x .section .rodata .LC0: .ascii "c\0" .section .text .align 1 .global _main _main: mov [-r0],r1 mov r1,r0 mov r8,#SOF:.LC0 calla cc_UC,_puts mov r1,[r0+] ret where there is no '\n' in the constant string .LC0 any more. However, when I change the string into "%c\n" (with a character passed), the constant string .LC0 becomes .ascii "c\12\0" Is there any idea about this kind of problem? Where did I got the mistake? Best regards, Phung