对于以下代码:
#include <stdio.h>
int main() {
printf("Hello World");
printf("Hello World1");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生成的用于调用printf的程序集如下(64位):
400474: be 24 06 40 00 mov esi,0x400624
400479: bf 01 00 00 00 mov edi,0x1
40047e: 31 c0 xor eax,eax
400480: e8 db ff ff ff call 400460 <__printf_chk@plt>
400485: be 30 06 40 00 mov esi,0x400630
40048a: bf 01 00 00 00 mov edi,0x1
40048f: 31 c0 xor eax,eax
400491: e8 ca ff ff ff call 400460 <__printf_chk@plt>
Run Code Online (Sandbox Code Playgroud)
而.rodata部分如下:
Contents of section .rodata:
400620 …Run Code Online (Sandbox Code Playgroud)