Le istruzioni Estese
Con l’ intento di fornire
un supporto molto efficiente al C, gli enhanced dispongono
di una estensione del set di istruzioni che ne aggiunge altre 8 alle
75 del set standard e comunemente utilizzate.
Questo set esteso non è attivo per default, ma va abilitato
portando a 1 il bit XINST nella configurazione iniziale
__CONFIG XINST = ON
Va considerato però, che l' abilitazione di queste istruzioni estese
produce significative modifiche in alcuni aspetti della memoria dati e dei
modi di accesso
In particolare, l' uso dell' Access Bank per molti core PIC18 diventa
differente.
Questo è dovuto all' introduzione di nuovi modi di indirizzamento della memoria.
E' anche importante conoscere cosa non cambia.
-
La dimensione della memoria dati resta invariata, come
pure l' indirizzamento lineare
-
La mappa degli SFR è inalterata
-
Si possono utilizzare indirizzamenti diretti ed
indiretti
-
Le istruzioni con indirizzamento inerente o literal sono
le stesse
-
L' uso di FSR0 e FSR1 è inalterato
Quello che viene sensibilmente più modificato è l' impiego
di FSR2, che viene dedicato al supporto di queste istruzioni estese.
In particolare possono essere implementati alcuni metodi
particolari, come l'indirizzamento indicizzato con offset literal.
Anche l' Access Bank può essere indirizzato con questo metodo
Le pagine da 69 a 71 del foglio dati tratteggiano e
schematizzano queste informazioni.
Si tratta di una diversa gestione della memoria dati che è
dedicata a rendere più efficienti i compilatori C e che nella
programmazione Assembly normalmente non vengono considerate.
Per ora lasciamo dunque questa come informazione,
consigliando di inserire nel configuratore iniziale la riga
__CONFIG XINST = OFF
ed utilizzare le 75 istruzioni standard, riservando una
discussione più approfondita sulle istruzioni estese quando, nel capitolo
24, il foglio dati riprenderà questo argomento.