Structuri de Date în NASM: Directivele STRUC, ENDSTRUC și Câmpuri RESB în Assembly (x86_64)

Sintaxă
struc NumeStructura
  .camp: resb dimensiune
endstruc

NASM permite definirea de structuri compuse similare structurilor din C prin intermediul blocului struc ... endstruc, calculând automat offset-ul fiecărui câmp în cadrul structurii.

; Definirea structurii unui nod de listă înlănțuită:
struc NodLista
    .valoare:   resq 1          ; 8 octeți (int64) la offset 0
    .prioritate: resd 1          ; 4 octeți (int32) la offset 8
    .padding:   resd 1          ; 4 octeți pentru aliniere la 8 octeți
    .urmator:   resq 1          ; 8 octeți (pointer) la offset 16
endstruc

section .text
; Accesarea unui câmp al structurii având pointerul în RDI:
global citeste_valoare_nod
citeste_valoare_nod:
    mov rax, [rdi + NodLista.valoare]     ; Citește de la offset-ul calculat automat
    mov edx, [rdi + NodLista.prioritate]
    ret

Modularitate: Dacă structura este modificată prin adăugarea de noi câmpuri, offset-urile din toate instrucțiunile se recalculează automat la asamblare.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Structuri de Date în NASM: Directivele STRUC, ENDSTRUC și Câmpuri RESB

Ai o nelămurire despre utilizarea comenzii Structuri de Date în NASM: Directivele STRUC, ENDSTRUC și Câmpuri RESB 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.