X86-64 (även känd som AMD64) är en 64-bitars förlängning till X86 Instruction Set Architecture (ISA). Det definieras inte som en enda sak, utan snarare en specifikation som omfattar flera viktiga aspekter:
* 64-bitars register: Den mest framträdande förändringen från 32-bitars x86 är utvidgningen av allmänna register från 32 bitar (EAX, EBX, etc.) till 64 bitar (RAX, RBX, etc.). Detta möjliggör direkt manipulation av större datatyper och adresser.
* 64-bitars adressering: X86-64 stöder 64-bitars virtuella adresser, vilket möjliggör åtkomst till betydligt mer minne än 32-bitars x86 (vilket är begränsat till 4 GB). Detta är avgörande för moderna operativsystem och applikationer som kräver stora mängder RAM.
* Utökad instruktionsuppsättning: Samtidigt som de behåller bakåtkompatibilitet med 32-bitars x86-instruktioner lägger x86-64 till nya instruktioner optimerade för 64-bitars operationer. Dessa förbättrar prestanda och supportfunktioner som större datastrukturer.
* Registrera konventioner: Hur register används för olika ändamål (t.ex. funktionsargument, returvärden, stackpekare) definieras i x86-64-arkitekturen. Dessa konventioner säkerställer konsekvent beteende mellan olika implementeringar.
* Minneshantering: Specifikationen beskriver hur systemet hanterar minne, inklusive virtuellt minne, sökning och skyddsmekanismer.
* Systemsamtal: Hur applikationer interagerar med operativsystemet definieras också, vilket ger ett konsekvent gränssnitt för olika funktioner (som fil I/O, nätverksoperationer etc.).
I huvudsak är x86-64 en omfattande specifikation som definierar en komplett 64-bitars datormiljö byggd på, men avsevärt utvidgad, arv X86-arkitekturen. Det är inte en enda språkfunktion utan en grund som operativsystem, kompilatorer och applikationer byggs. Den faktiska * implementeringen * av denna arkitektur görs av hårdvarutillverkare (som Intel och AMD).