Sdílet prostřednictvím


Využití registrů

Architektura x64 stanoví 16 obecně účelných registrů (dále jen jako celočíselné registry), stejně jako 16 XMM registrů, k dispozici pro použití čísla s plovoucí desetinnou čárkou. Závislé registry jsou odolné registry, předpokládající, že budou zničeny volájícím po ukončení volání. Nezávislé registry požadují udržení hodnot prostřednictvím volání funkce a pokud jsou použity, musí být uloženy volaným.

Následující tabulka popisuje, jak je používán každý registr v rámci volání funkce:

Register

Stav

Pomocí

RAX

Závislé

Návratová hodnota registru

RCX

Závislé

První argument celého čísla

RDX

Závislé

Druhý argument celého čísla

R8

Závislé

Třetí argument celého čísla

R9

Závislé

Čtvrtý argument celého čísla

R10:R11

Závislé

Musí být zachovány v případě potřeby volajícího; používány v instrukcích syscall/sysret

R12:R15

Nezávislé

Musí být zachovány volaným

RDI

Nezávislé

Musí být zachovány volaným

RSI

Nezávislé

Musí být zachovány volaným

RBX

Nezávislé

Musí být zachovány volaným

RBP

Nezávislé

Mohou být použity jako rámcový ukazatel; musí být zachovány volaným

RSP

Nezávislé

Ukazatel zásobníku

XMM0

Závislé

První argument FP

XMM1

Závislé

Druhý argument FP

XMM2

Závislé

Třetí argument FP

XMM3

Závislé

Čtvrtý argument FP

XMM4:XMM5

Závislé

Musí být zachovány v případě potřeby volajícího

XMM6:XMM15

Nezávislé

Musí být, v případě potřeby, zachovány volaným

Viz také

Odkaz

Úmluvy softwaru x64