Registrai (x86-64)

Iš Žinynas.
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 Segment
  • DS – Data Segment
  • SS – Stack Segment
  • ES, 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 adresas
  • CR3 – puslapių lentelės bazinis adresas
  • CR4 – 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–R15 yra nauji ir prieinami tik 64 bitų režime.
  • RSP naudojamas kaip steko rodyklė.

Susiję straipsniai[keisti]