Sdílet prostřednictvím


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.

Viz také

Referenční dokumentace

x64 – softwarové konvence

__vectorcall