Využití registrů
x64 Architektura poskytuje pro 16 obecný registrů (dále jen jako celočíselné registry), stejně jako 16 XMM/YMM registrů k dispozici pro použití s plovoucí desetinnou čárkou.Závislé registry jsou pomocné registry předpokládá, že volající zničení prostřednictvím volání.Stálé registry jsou nutné k udržení hodnot prostřednictvím volání funkce a musí být uložen volaný, je-li použít.
Následující tabulka popisuje, jak je používán každý registr v rámci volání funkce:
Registr |
Stav |
Použití |
RAX |
Těkavé |
Návratová hodnota registru |
RCX |
Těkavé |
První argument celého čísla |
RDX |
Těkavé |
Druhý argument celé číslo |
R8 |
Těkavé |
Třetí argument celého čísla |
R9 |
Těkavé |
Čtvrtý argument celého čísla |
R10:R11 |
Těkavé |
Musí být zachovány v případě potřeby volajícího; použít v pokynech syscall/sysret |
R12:R15 |
Stálé |
Musí být zachována podle volaných funkcí |
RDI |
Stálé |
Musí být zachována podle volaných funkcí |
RSI |
Stálé |
Musí být zachována podle volaných funkcí |
RBX |
Stálé |
Musí být zachována podle volaných funkcí |
RBP |
Stálé |
Mohou být použity jako ukazatel rámce; musí být zachována podle volaných funkcí |
RSP |
Stálé |
Ukazatel na zásobník |
XMM0 YMM0 |
Těkavé |
První argument dp; první argument typu vector při __vectorcall se používá |
XMM1, YMM1 |
Těkavé |
Druhý argument dp; druhý argument typu vektoru při __vectorcall se používá |
XMM2, YMM2 |
Těkavé |
Třetí argument dp; třetí argument typu vector při __vectorcall se používá |
XMM3 YMM3 |
Těkavé |
Čtvrtý argument dp; čtvrtý argument typu vector při __vectorcall se používá |
XMM4, YMM4 |
Těkavé |
Musí být zachovány v případě potřeby volajícího; páté argument typu vector při __vectorcall se používá |
XMM5 ZÁVISLÉ, YMM5 |
Těkavé |
Musí být zachovány v případě potřeby volajícího; šestého argument typu vector při __vectorcall se používá |
XMM6:XMM15, YMM6:YMM15 |
Stálé (XMM) Volatile (horní polovina YMM) |
Musí být zachovány v případě potřeby podle volaných funkcí.Zaregistruje YMM musí být zachovány v případě potřeby volajícím. |