Programmers interact with x86 hardware through assembly language, which translates low-level instructions into machine code. There are two primary syntax flavors:
Common in UNIX/Linux environments and used by the GNU Assembler (GAS) . Memory Model
Holds the memory address of the next instruction to be executed.
Used to access local variables and function parameters. Assembly Language and Syntax
A "Last-In, First-Out" (LIFO) structure for local variables and function control flow. Let's Write Some X86-64 - Nick Desaulniers