Asamblorul NASM pune la dispoziție un preprocesor robust pentru definirea constantelor simbolice și a macrocomenzilor extinse pe mai multe linii, sporind lizibilitatea codului de nivel scăzut.
; Definire constante numerice neschimbabile:
BUFFER_SIZE equ 4096
SYS_WRITE equ 1
STDOUT_FILENO equ 1
; Definire macro cu argumente:
%macro PRINT_STRING 2
mov rax, SYS_WRITE
mov rdi, STDOUT_FILENO
mov rsi, %1 ; Primul argument: adresa șirului
mov rdx, %2 ; Al doilea argument: lungimea șirului
syscall
%endmacro
; Utilizarea macro-ului în cod:
PRINT_STRING mesaj_start, 12
EQU vs %define: EQU definește o constantă evaluată o singură dată la asamblare, în timp ce %define funcționează similar directivelor #define din C, permițând redefiniri ulterioare.
Întrebări & Exemple de Cod:
Directivele EQU, %define și %macro în NASM: Metaprogramare și ConstanteAi o nelămurire despre utilizarea comenzii
Directivele EQU, %define și %macro în NASM: Metaprogramare și Constantesau 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.