GCC는 1문자를 printf() 시 assembly어의 putchar을 call한다.
GCC는 1문자이상과 carrige-return(\n)을 printf()시 assembly어의 puts를 call한다.
GCC는 1문자이상을 puts()시 assembly어의 puts를 call한다.
GCC는 2문자이상을 printf시 assembly어의 printf를 call한다.

~cpp 
.LC0: .string "1"
.LC1: .string "2"
.LC2: .string "3"
.LC3: .string "45"

//  printf("1\n");
    subl    $12, %esp
    pushl   $.LC0
    call    puts
    addl    $16, %esp

// puts("2");
    subl    $12, %esp
    pushl   $.LC1
    call    puts
    addl    $16, %esp

// printf("3");
    subl    $12, %esp
    pushl   $51
    call    putchar
    addl    $16, %esp

// printf("45");
    subl    $12, %esp
    pushl   $.LC2
    call    printf
    addl    $16, %esp
Retrieved from http://wiki.zeropage.org/wiki.php/C/Assembly/stdout
last modified 2021-02-07 05:22:47