"Hello, World!" in C

"Hello, World!" in C

Open up a terminal and enter the following commands.

$ cd ~
$ mkdir -p ~/src/c/hello_world/
$ cd src/c/hello_world/
$ vim hello_world.c

Place the following code in hello_world.c and save.

#include <stdio.h>
#include <stdlib.h>

int main (void) {
	puts("Hello, World!");
	return EXIT_SUCCESS;
}

Now you need to compile the program.

$ gcc hello_world.c
$ ls
a.out	hello_world.c

The new file created a.out is the binary which we will execute.

Run the file.

$ ./a.out
Hello, World!

Recompile it again, now with a flag -S, which produces and outputs the assembly code file. Output the new hello_world.s file to see the assembly.

$ gcc -S hello_world.c
$ ls
a.out	hello_world.c	hello_world.s
$ cat hello_world.s
	.file	"hello_world.c"
	.text
	.section	.rodata
.LC0:
	.string	"Hello, World!"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.ident	"GCC: (GNU) 9.2.0"
	.section	.note.GNU-stack,"",@progbits

Share Tweet Send
0 Comments
Loading...
You've successfully subscribed to Linux Developer
Great! Next, complete checkout for full access to Linux Developer
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.