64bit
Definitions
LMA = Load address
VMA = Virtual address
elf-binary = Binary in elf format, with reallocations not applied
bin-binary = Raw binary, with all reallocations applied
Directives
AT = Set LMA
ADDR = Return VMA of given section
SIZEOF = Size of given section
LVM, VMA and AT
Understanding LMA and VMA, and the AT directive. In short AT allows us to disconnect where in the bin-binary or physical memory they end up and where in memory the code think it is.
https://sourceware.org/binutils/docs/ld/Output-Section-LMA.html
https://sourceware.org/binutils/docs/ld/Overlay-Description.html
Futher reading
http://wiki.osdev.org/Creating_a_64-bit_kernel