void g(const char *, const char *, const char *); void f(void) { const char* read_only_1 = "C Programming"; const char* read_only_2 = "C Programming"; char read_write[] = "C Programming"; g(read_only_1, read_only_2, read_write); } gcc -S -O2 -m32 -std=c99 -Wall -pedantic-errors -fno-stack-protector -fomit-frame-pointer const.c .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "C Programming" .text .p2align 4,,15 .globl f .type f, @function f: subl $44, %esp ; create stack frame leal 18(%esp), %eax ; start of local variable space movl $0x72502043, 18(%esp) ; "C Pr" movl $0x6172676f, 22(%esp) ; "ogra" movl $0x6e696d6d, 26(%esp) ; "mmin" movw $0067, 30(%esp) ; "g\0" movl %eax, 8(%esp) ; param 3: read_write movl $.LC0, 4(%esp) ; param 2: read_only_2 movl $.LC0, (%esp) ; param 1: read_only_1 call g addl $44, %esp ; destroy stack frame ret