Sposób użycia rejestru
x64 Architektura stanowi 16 rejestrów ogólnego przeznaczenia (dalej zwanego rejestruje liczba całkowita), a także 16 rejestrów XMM dostępne do użytku liczb zmiennoprzecinkowych.Rejestry lotnych są rejestry podstaw domniemywać przez obiekt wywołujący, które mogą zostać zniszczone przez wywołanie.Rejestry nieulotna są zobowiązane do zachowują swoje wartości przez wywołanie funkcji i musi zostać zapisany przez wywoływany, jeśli używana.
W poniższej tabeli opisano, jak każdy rejestr jest używany przez wywołania funkcji:
Rejestr |
Stan |
Użyj |
RAX |
Lotne |
Zwracana wartość rejestru |
RCX |
Lotne |
Pierwszy argument liczby całkowitej |
RDX |
Lotne |
Drugi argument liczby całkowitej |
R8 |
Lotne |
Trzeci argument liczby całkowitej |
R9 |
Lotne |
Czwarty argument liczby całkowitej |
R10:R11 |
Lotne |
Należy zachować w razie potrzeby przez rozmówcę; używane w instrukcjach syscall/sysret |
R12:R15 |
Nieulotnej |
Muszą być zachowane przez wywoływany |
RDI |
Nieulotnej |
Muszą być zachowane przez wywoływany |
RSI |
Nieulotnej |
Muszą być zachowane przez wywoływany |
RBX |
Nieulotnej |
Muszą być zachowane przez wywoływany |
RBP |
Nieulotnej |
Może być stosowany jako wskaźnika klatki; muszą być zachowane przez wywoływany |
RSP |
Nieulotnej |
Wskaźnik stosu |
XMM0 |
Lotne |
Pierwszy argument FP |
XMM1 |
Lotne |
Drugi argument FP |
XMM2 |
Lotne |
Trzeci argument FP |
XMM3 |
Lotne |
Czwarty argument FP |
XMM4:XMM5 |
Lotne |
Należy zachować w razie potrzeby przez wywołującego |
XMM6:XMM15 |
Nieulotnej |
Muszą być zachowane zgodnie z potrzebą, wywoływany. |