I am currently learning some x86 Assembly and I would like if someone could explain what this program is doing. I know that it is a "Hello World" program, but I don't understand how it is doing it, or what any code means.
.data
.globl greet
greet:
.string "Hello world."
.text
.global main
main:
pushq %rbp
movq %rsp, %rbp
movq $greet, %rdi
call puts
movq $0, %rax
leave
ret