Indirizzamento dati

I dati sono variabili a uno o più bit memorizzate in appositi blocchi. L’accesso ad essi, in lettura o scrittura, può essere effettuato con due modalità. La prima consiste nell’indirizzamento dei dati previa apertura del blocco di appartenenza con l’operazione AUF DBn, dove n rappresenta il numero del blocco. Una volta aperto un blocco dati, ogni istruzione di accesso a dati farà riferimento a quelli in esso contenuti. E’ possibile tenere aperto un solo blocco dati per volta. Una successiva operazione di apertura di blocco dati farà in modo che le seguenti operazioni di accesso a dati saranno riferite solo all’ultimo blocco aperto.

L’accesso ai dati in un blocco dati aperto può essere effettuato a bit, byte, word e doppia word.

I blocchi dati sono composti, al massimo, da 256 byte (data byte). Ogni byte è indirizzabile attraverso la sigla DBBx, dove x è il numero progressivo di byte. Ad esempio, DBB10 identifica il byte 10 del blocco. Gli indirizzi possibili vanno quindi da DBB0 a DBB255.

Ogni data bit è indirizzabile singolarmente con la sigla DBXx.y, dove x è il numero di data byte e y è il numero del bit all’interno di tale byte. Quindi sono possibili gli indirizzi da DBX0.0 a DBX255.7.

Inoltre, i dati possono essere indirizzati a word utilizzando la sigla DBWx dove x è il numero di word. La DBW0 (data word numero 0) è composta dai data byte DBB0 e DBB1, la DBW1 da DBB1 e DBB2, e così via. Il campo operandi possibile va da DBW0 a DBW254. Infatti la DBW254, che raggruppa DBB254 e DBB255, è l’ultima data word disponibile, essendo DBB255 l’ultimo byte indirizzabile.

Infine i dati sono indirizzabili a doppia word: da DBD0, che raggruppa DBB0, DBB1, DBB2 e DBB3, a DBD252, ultima doppia word indirizzabile.

La seconda modalità consiste nell’accesso diretto ai dati di un blocco, anche non aperto. Nella scrittura dell’operando, occorre far precedere la sigla del dato, da leggere o da scrivere, dalla sigla del blocco di appartenenza. E così, ad esempio, la sigla DB25.DBW20 indirizza la data word 20 del blocco dati 25, e la sigla DB42.DBX3.6 indirizza il bit 6 del data byte 3 del blocco dati 42.

Occorre infine sottolineare che i succitati limiti di indirizzamento dei dati sono altresì limitati dalla effettiva lunghezza del blocco programmato. Cioè ad esempio, in un blocco contenente 12 data byte, sarà possibile indirizzare solo da DBB0 a DBB11, e ogni accesso a data byte di numero superiore provocherà uno specifico errore nell’esecuzione del programma utente. Analoghe considerazioni possono essere svolte i dati a 1, 16 o 32 bit.

^