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.
Întrebări & Exemple de Cod:
Structuri de Date în NASM: Directivele STRUC, ENDSTRUC și Câmpuri RESBAi o nelămurire despre utilizarea comenzii
Structuri de Date în NASM: Directivele STRUC, ENDSTRUC și Câmpuri RESBsau 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.