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 R8R15 yra nauji ir prieinami tik 64 bitų režime.
  • RSP naudojamas kaip steko rodyklė.

Susiję straipsniai[keisti]