Udostępnij za pośrednictwem


Użycie metody Register

x64 Architektura stanowi 16 rejestruje ogólnego przeznaczenia (zwany dalej rejestruje liczbę całkowitą), a także rejestruje XMM/YMM 16 dostępnych do użytku zmiennoprzecinkowych.Rejestruje lotnych są rejestruje zapasowy założyć przez obiekt wywołujący zniszczenie przez połączenie.Rejestruje nonvolatile muszą zachować ich wartości w wywołaniu funkcji i musi być zapisany przez wywoływany, gdy używane.

W poniższej tabeli opisano, jak każdy rejestr jest używany przez wywołania funkcji:

Rejestruj

Stan

Zastosowanie

RAX

Lotne

Zwracana wartość rejestru

RCX

Lotne

Pierwszy argument liczba całkowita

RDX

Lotne

Drugi argument liczba całkowita

R8

Lotne

Trzeci argument liczba całkowita

R9

Lotne

Czwarty argument liczba całkowita

R10:R11

Lotne

Musi zostać zachowane zgodnie z potrzebami przez obiekt wywołujący; używane w instrukcji syscall/sysret

R12:R15

Nieulotnej

Musi być przechowywane w formie wywoływany

RDI

Nieulotnej

Musi być przechowywane w formie wywoływany

RSI

Nieulotnej

Musi być przechowywane w formie wywoływany

RBX

Nieulotnej

Musi być przechowywane w formie wywoływany

RBP

Nieulotnej

Może być używany jako wskaźnik ramki; musi być przechowywane w formie wywoływany

REAKCJI DLA

Nieulotnej

Wskaźnik stosu

XMM0, YMM0

Lotne

Pierwszy argument FP; pierwszy argument Typ wektora po __vectorcall jest używany

XMM1, YMM1

Lotne

Drugi argument FP; drugi argument typu wektora po __vectorcall jest używany

XMM2, YMM2

Lotne

Trzeci argument FP; trzeci argument Typ wektora po __vectorcall jest używany

XMM3, YMM3

Lotne

Czwarty argument FP; czwarty argument Typ wektora po __vectorcall jest używany

XMM4, YMM4

Lotne

Musi zostać zachowane zgodnie z potrzebami przez obiekt wywołujący; argument typu wektora piątym po __vectorcall jest używany

XMM5, YMM5

Lotne

Musi zostać zachowane zgodnie z potrzebami przez obiekt wywołujący; argument typu wektora szóstego po __vectorcall jest używany

XMM6:XMM15, YMM6:YMM15

Nieulotnej (XMM), lotnych (górnej części YMM)

Musi zostać zachowane zgodnie z potrzebami wywoływany.Rejestruje YMM muszą być chronione zgodnie z potrzebami przez obiekt wywołujący.

Zobacz też

Informacje

Konwencje kodowania x64

__vectorcall