Octeții ModR/M și SIB în x86_64: Mecanismul Intern de Codificare a Adresării în Assembly (x86_64)

Sintaxă
[Prefixe] [Opcode] [ModR/M] [SIB] [Displacement] [Immediate]

Orice instrucțiune x86_64 este codificată binar într-un format variabil între 1 și 15 octeți. Câmpurile ModR/M și SIB (Scale-Index-Base) descriu modul în care registrele și adresele de memorie sunt selectate.

; Anatomia adresării complexe: [Base + Index*Scale + Displacement]
mov rax, [rbx + rcx*8 + 0x20]

; Codificarea binară generată:
; 1. Prefix REX: indică operanzi pe 64 de biți (0x48)
; 2. Opcode MOV: 0x8B
; 3. ModR/M: specifică că avem adresare bazată pe SIB cu deplasament pe 1 octet (Mod=01)
; 4. SIB: Scale=8 (11b), Index=RCX (001b), Base=RBX (011b)
; 5. Deplasament: 0x20

Lecție de compilare: Înțelegerea schemei SIB permite programatorilor de nivel jos să scrie structuri de date a căror dimensiune se aliniază nativ pe scale-ul hardware (1, 2, 4, 8 octeți).

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Octeții ModR/M și SIB în x86_64: Mecanismul Intern de Codificare a Adresării

Ai o nelămurire despre utilizarea comenzii Octeții ModR/M și SIB în x86_64: Mecanismul Intern de Codificare a Adresării sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.