  | il progetto di una macro risulta conveniente quando nel 
  sorgente sono evidenti parti di codice (alcune istruzioni)
  simili tra loro, cioè 
  diverse solo per piccoli particolari, di solito numeri binari | 
      | per la sua definizione si utilizzano le direttive 
  MACRO
  e ENDM, 
  all'interno delle quali saranno raccolte le istruzioni che si desidera 
  sostituire con una sola riga di programma;  solo la prima 
  delle 2 
  direttive sarà 
  preceduta dal nome scelto per la macro | 
      | dopo la direttiva MACRO
  è possibile (ma non obbligatorio) 
  
  passare parametri, cioè predisporre
  valori binari sia in forma 
  immediata che con il nome del
  registro o della 
  variabile che li contiene; questi valori sono destinati a 
  inizializzare una o più istruzioni interne alla macro | 
      | in questo modo lo stesso gruppo di istruzioni (racchiuso 
  nel corpo della macro) può essere adattato 
  a situazioni di volta in volta diverse | 
      | in pratica questa opportunità rappresenta la
  seconda grande valenza di una 
  macro: la medesima riga di programma (comunque da noi inventata...) non solo
  rappresenta più istruzioni ma
  contiene in sequenza anche i valori iniziali 
  da dare ai vari registri coinvolti dalle medesime istruzioni | 
      | il compito dell'effettiva inizializzazione spetta al compilatore e 
  risulta a noi del tutto trasparente (fantastico..) | 
      | non ci sarà invece alcun vantaggio 
  dal punto di vista della memoria di programma 
  necessaria, perchè 
il compilatore sostituirà 
  comunque la riga di programma contenente la nostra
macro con il suo corpo, cioè con le 
  istruzioni ad essa associate, eventualmente modificate sulla base delle indicazioni 
  suggerite dagli eventuali parametri |