学习篇 Introduction to X86-64 Assembly for Compiler Writers

• Directives begin with a dot and indicate structural information useful to the assembler, linker, or debugger. but are not in and of themselves assembly instructions. For example, .file simply records the name of the original source file. .data indicates the start of the data section of the program, while .text indicates the start of the actual program code. .string indicates a string constant within the data section, and .globl main indicates that the label main is a global symbol that can be accessed by other code modules. (You can ignore most of the other directives.)
• Labels end with a colon and indicate by their position the association between names and locations. For example, the label .LC0: indicates that the immediately following string should be called .LC0. The label main: indicates that the instruction pushq %rbp is the first instruction of the main function. By convention, labels beginning with a dot are temporary local labels generated by the compiler, while other symbols are user-visible functions and global variables.
• Instructions are the actual assembly code (pushq %rbp), typically indented to visually distinguish them from directives and labels.

https://www.cnblogs.com/bangerlee/archive/2012/05/22/2508772.html

pushq   %rbp        ; Save address of previous stack frame
movq    %rsp, %rbp  ; Address of current stack frame
subq    \$16, %rsp   ; Reserve 16 bytes for local variables

; ... function ...

movq    %rbp, %rsp  ; \ equivalent to the
popq    %rbp        ; / 'leave' instruction
ret

https://0xax.github.io/asm_3/