compiler generates a gas, which has some strange labels (weird name) used for symbols:
.file "a.c" .text .section .rodata.LC0: .string "string" .text .globl main .type main, @functionmain: pushq %rbp movq %rsp, %rbp leaq .LC0(%rip), %rdi call puts@PLT movl $0, %eax popq %rbp ret .size main, .-main .ident "GCC: (Debian 8.3.0-6) 8.3.0"
What is the .LCO:
? label should end with semicolon :
, directive should starts with dot .
, so is it "label-directive"? and this name .LC0
? Why isn't it name with the variable name? And in case of other symbols in other programs (not in this one particularly), the labels(directive?), will have names like .LB0
, ... Are these names random?