# the .text section (the default) is used for code to execute .section .text # Function main is used as the entry point for any program .globl main main: leaq message(%rip), %rdi callq puts@PLT # puts is a function that displays a string # puts@PLT means "get the one for this process" xorq %rax, %rax retq # since we returned, we are no longer ing the function # there is nothing like "}" in assembly # we make our string read-only by putting it in the .rodata section .section .rodata message: .asciz "Hello there, world!"