Registrai (x86-64)
Jump to navigation
Jump to search
Registrai (x86-64)[keisti]
Šiame puslapyje aprašomi pagrindiniai x86-64 architektūros registrai.
Bendrosios paskirties registrai[keisti]
x86-64 turi 16 bendrosios paskirties registrų. Kiekvienas gali būti naudojamas kaip 64, 32, 16 arba 8 bitų registras.
| 64-bit | 32-bit | 16-bit | 8-bit (žemasis) | 8-bit (aukštasis) |
|---|---|---|---|---|
| RAX | EAX | AX | AL | AH |
| RBX | EBX | BX | BL | BH |
| RCX | ECX | CX | CL | CH |
| RDX | EDX | DX | DL | DH |
| RSI | ESI | SI | SIL | — |
| RDI | EDI | DI | DIL | — |
| RBP | EBP | BP | BPL | — |
| RSP | ESP | SP | SPL | — |
| R8 | R8D | R8W | R8B | — |
| R9 | R9D | R9W | R9B | — |
| R10 | R10D | R10W | R10B | — |
| R11 | R11D | R11W | R11B | — |
| R12 | R12D | R12W | R12B | — |
| R13 | R13D | R13W | R13B | — |
| R14 | R14D | R14W | R14B | — |
| R15 | R15D | R15W | R15B | — |
Specialūs registrai[keisti]
Instrukcijų rodyklė[keisti]
- RIP – 64 bitų instrukcijų rodyklė (Instruction Pointer)
Segmentų registrai[keisti]
CS– Code SegmentDS– Data SegmentSS– Stack SegmentES,FS,GS– papildomi duomenų segmentai
Pastaba: Long Mode režime segmentacija beveik nenaudojama (išskyrus FS ir GS).
Valdymo registrai (Control Registers)[keisti]
CR0– pagrindinės procesoriaus vėliavėlės (įskaitant Protected Mode ir paging)CR2– puslapio klaidos adresasCR3– puslapių lentelės bazinis adresasCR4– papildomos funkcijos (PAE, SSE ir kt.)CR8– TPR (Task Priority Register) – tik x86-64
Papildomi registrai[keisti]
- RFLAGS – vėliavėlių registras
- GDTR, IDTR, LDTR, TR – sisteminiai registrai
- XMM0–XMM15 – SSE registrai (128 bitų)
- YMM0–YMM15 – AVX registrai (256 bitų)
- ZMM0–ZMM31 – AVX-512 registrai (512 bitų)
Svarbios pastabos[keisti]
- Rašant į 32 bitų registrą (pvz.
EAX), viršutiniai 32 bitai 64 bitų registro (RAX) automatiškai nunulinami. - Registrai
R8–R15yra nauji ir prieinami tik 64 bitų režime. RSPnaudojamas kaip steko rodyklė.