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