char a[] = "abc"; // movl $6513249, -12(%rbp)
char ab[] = "ab"; // movw $25185, -11(%rbp)
char abc[] = "a"; // movw $97, -10(%rbp)
The C code above is represented in assembly (gcc -S code.c) as:
movl $6513249, -12(%rbp)
movw $25185, -15(%rbp)
movw $97, -17(%rbp)
97 is 'a' in decimal, but why "ab" is 25185 and "abc" is 6513249?