  | Dunque in funzione della tecnica
    d'accesso ad un determinato dato; vediamo i possibili di modi
    di indirizzamento:
  
      | tra registri:
        il dato è contenuto in un registro e viene semplicemente travasato in
        un altro registro (es: MOV
        AX,BX); si tratta del metodo più
        veloce possibile dato che il processore trova già dentro se stesso le
        informazioni necessarie per eseguire l'istruzione; naturalmente non è
        possibile coinvolgere registri di dimensione diversa. |  
      | immediato:
        il dato è indicato direttamente dall'istruzione e viene inserito nel
        registro specificato (es: MOV
        AX,1234H); sebbene la presenza del
        numero nella sintassi dell'istruzione possa indurre un pensiero di immediatezza
        anche nell'esecuzione, dobbiamo pensare che il dato costante
        è, in realtà, scritto nella memoria di
        programma (cioè quella puntata da CS:IP)
        dopo il codice operativo: per questo
        il processore è costretto ad eseguire uno o più accessi in memoria (a
        seconda della dimensione del dato) per prelevarlo e porlo nella coda
        d'istruzione, prima di sistemarlo:
    
        | dentro se stesso, in un registro MOV AX,1234H). |  
        | in memoria MOV
            [Depo02],1234H); in questo caso
            la costante assunta dalla memoria di
            programma dovrà essere spostata nella memoria
            dati (cioè puntata per default da DS:Offset,
            ma anche in altro segmento, se si impone esplicitamente un override,
            MOV
            CS:[Depo02],1234H). |  
     
     |  
      | diretto:
        il dato è localizzato dall'etichetta
        specificata direttamente dall'istruzione, ed è coinvolto (in lettura o
        in scrittura) con un registro di dimensione uguale a quella
        dell'operando diretto stesso (es: MOV
        AX,Depo02); bisogna sottolineare che:
    
        | l'etichetta non
            rappresenta l'indirizzo del dato ma il dato
            stesso!, cioè il dato contenuto
            nella locazione puntata da quell'indirizzo; per questo, sebbene la
            sintassi proposta come esempio sia perfettamente legale,
            personalmente preferisco educarmi a scriverla così MOV
            AX,[Depo02]: poiché il 
            compilatore la riconosce allo stesso modo mi
            sembra una scelta più vicina alla realtà. |  
        | l'altro operando deve avere la stessa
            dimensione del dato associato all'etichetta (con 
      DB o DW o DD,
            nella riga di programma che definisce la variabile); in caso
            contrario è necessario utilizzare l'operatore 
      Byte o Word o Dword
            (per esempio per trasferire in AL solo la parte bassa della word
            memorizzata inDepo02
            bisogna scrivere MOV
            AL,Byte Ptr [Depo02])  |  
     
     |  
      | indiretto tramite registro:
        il dato è localizzato con l'aiuto di un registro di Offset, di solito SI
        o DI ma anche altri registri a 16
        bit:
    
        | la sintassi di queste istruzioni (es: MOV
        AX,[SI]) è, in questo caso, meno
        ambigua, dando con le parentesi quadre,
        il senso di contenuto della locazione
        puntata da SI (o
        qualunque altro registro).  |  
        | per altro, se l'operando sorgente è
            una costante, è assolutamente necessario specificare anche la dimensione del dato,
            con l'operatore 
      Byte o Word o Dword Ptr,
            per evitare segnalazioni d'errore da parte dell'assemblatore, 
            per esempio: MOV
            Byte Ptr [Si],100) |  
     
     |  
      | indiretto tramite registro
        e spiazzamento:
        il dato è localizzato sommando il
        contenuto di un  registro indice,
        SI
        o DI, o base,
        BX o BP,
        con il numero esadecimale con segno a 8 o a 16 bit, specificato
        nell'istruzione, detto displacement
        (spiazzamento) (es: MOV
        AX,[SI+10]):
    
        | la somma del contenuto dei registri
            con il numero fornito punta una locazione nel segmento DS
            se i registri coinvolti sono SI,
            DI o BX,
            e nel segmento SS se il registro
            è BP. |  
        | l'utilità di questo metodo è
            evidente quando è necessario scorrere una tabella in modo dinamico,
            a partire da un certo punto; per esempio con la MOV
            AX,[Depo02+SI] basta cambiare il
            valore corrente di SI per
            assumere, una dopo l'altra, le word contenute nella tabella Depo02 |  
     
     |  
      | indiretto tramite registro
        indice e base e
        spiazzamento:
        il dato è localizzato sommando il
        contenuto di un  registro indice,
        SI
        o  DI, con uno base,
        BX o BP,
        e con il numero esadecimale con segno a 8 o a 16 bit, specificato
        nell'istruzione, detto displacement
        (spiazzamento) (es: MOV
        AX,[SI+BX+10]):
    
        | la somma del contenuto dei registri
            con il numero fornito punta una locazione nel segmento DS
            se il registro base coinvolto è BX,
            e nel segmento SS se invece è BP. |  
        | questa ulteriore opzione rende ancora
            più versatile la gestione dinamica delle tabelle. |  
     
     |  
   
   |