Set di istruzioni ST6


Cliccare sull'istruzione desiderata per leggere una breve descrizione

add addi and andi call
clr com cp cpi dec
inc jp jrc jrnc jrnz
jrr jrs jrz ld ldi
nop res ret reti rlc
set sla stop sub subi
wait


ADD -- somma

Il contenuto di una variabile viene sommato al contenuto dell'accumulaore ed il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C e' settato se l'operazione da un riporto, cioe' se e' maggiore di 255 (FFh)

Torna all'inizio


ADDI -- somma immediata

Un numero viene sommato al contenuto dell'accumulatore ed il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
nn = numero da 0 a 255 (FFh)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C e' settato se l'operazione da un riporto, cioe' se e' maggiore di 255 (FFh)

Torna all'inizio


AND -- funzione logica AND

Funzione logica AND tra l'accumulatore ed una variabile. Il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


ANDI -- funzione logica AND immediata

Funzione logica AND tra l'accumulatore ed un numero. Il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
nn = numero da 0 a 255 (FFh)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


CALL -- chiama subroutine

Richiama una subroutine. Formati possibili:

nomesub = etichetta della subroutine da eseguire
Cicli macchina = 4
I flag Z e C non sono influenzati

Torna all'inizio


CLR -- azzera byte

Resetta l'accumulatore, un registro o una variabile. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato
Il flag C e' resettato

Torna all'inizio


COM -- complemento byte

Calcola il complemento del contenuto dell'accumulatore e memorizza il risultato nell'accumulatore. Formati possibili:

A = registro accumulatore
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C e' settato se prima della funzione COM il bit 7 di A e' 1

Torna all'inizio


CP -- compara

Compara il contenuto di un registro o di una variabile con l'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se i numeri sono uguali, resettato se diversi
Il flag C e' settato se l'accumulatore e' minore del registro o della variabile, resettato se maggiore o uguale

Torna all'inizio


CPI -- compara immediato

Compara il contenuto dell'accumulatore con un numero. Formati possibili:

A = registro accumulatore
nn = numero da 0 a 255 (FFh)
Cicli macchina = 4
Il flag Z e' settato se i numeri sono uguali, resettato se diversi
Il flag C e' settato se l'accumulatore e' minore del numero, resettato se maggiore o uguale

Torna all'inizio


DEC -- decrementa

Decrementa di 1 il contenuto dell'accumulatore, di un registro o di una variabile. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


INC -- incrementa

Incrementa di 1 il contenuto dell'accumulatore, di un registro o di una variabile. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


JP -- salta

Effettua un salto incondizionato ad una etichetta. Formati possibili:

abc = etichetta
Cicli macchina = 4
I flag Z e C non sono influenzati

Torna all'inizio


JRC -- salta se c'è riporto

Salta ad una etichetta se il Flag Carry e' settato. Formati possibili:

e = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRC
Cicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


JRNC -- salta se non c'è riporto

Salta ad una etichetta se il Flag Carry e' resettato. Formati possibili:

e = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRNC
Cicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


JRNZ -- salta se l'operazione non dà 0

Salta ad una etichetta se il Flag Zero e' resettato. Formati possibili:

e = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRNZ
Cicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


JRR -- salta se bit è 0

Salta ad una etichetta se un determinato bit di una variabile e' resettato. Formati possibili:

b = numero del bit da testare (da 0 a 7)
rr = byte di indirizzo della variabile
ee = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRR
Cicli macchina = 5
Il flag Z non e' influenzato Il flag C contiene il valore del bit testato

Torna all'inizio


JRS -- salta se bit è 1

Salta ad una etichetta se un determinato bit di una variabile e' settato. Formati possibili:

b = numero del bit da testare (da 0 a 7)
rr = byte di indirizzo della variabile
ee = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRS
Cicli macchina = 5
Il flag Z non e' influenzato Il flag C contiene il valore del bit testato

Torna all'inizio


JRZ -- salta se l'operazione dà 0

Salta ad una etichetta se il Flag Zero e' settato. Formati possibili:

e = numero che rappresenta la distanza in byte dell'etichetta di salto rispetto all'istruzione JRZ
Cicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


LD -- carica registro

Serve per caricare il valore contenuto in una variabile, in un registro o nell'accumulatore. Per questa istruzione va sempre usato l'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


LDI -- carica registro immediato

Serve per caricare un numero in una variabile, in un registro o nell'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
nn = numero di 1 byte
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C non e' influenzato

Torna all'inizio


NOP -- nessuna operazione

Esegue 2 cicli macchina a vuoto. Viene usata per creare dei piccoli ritardi. Formati possibili:

Cicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


RES -- resetta bit

Resetta uno degli 8 bit di una variabile o dell'accumulatore. Formati possibili:

A = registro accumulatore
rr = indirizzo della variabile (1 byte)
b = numero del bit da resettare (da 0 a 7)
Cicli macchina = 4
I flag Z e C non sono influenzati

Torna all'inizio


RET -- ritorna da una subroutine

Esce dalla subroutine e ritorna al punto della chiamata CALL. Formati possibili:

I flag Z e C non sono influenzati

Torna all'inizio


RETI -- ritorna da un interrupt

Esce dalla subroutine di interrupt e ritorna al punto precedente all'evento di interrupt. Formati possibili:

I flag Z e C vengono riportati alla condizione in cui si trovavano prima dell'interrupt

Torna all'inizio


RLC -- ruota a sinistra con riporto

Ruota a sinistra i bit dell'accumulatore. Trasferisce il bit 7 nel Carry, mentre il contenuto precedente del carry passa nel bit 0 dell'accumulatore. Formati possibili:

A = registro accumulatore
Clicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C riporta il valore del bit 7

Torna all'inizio


SET -- setta bit

Setta uno degli 8 bit di una variabile o dell'accumulatore. Formati possibili:

A = registro accumulatore
rr = indirizzo della variabile (1 byte)
b = numero del bit da settare (da 0 a 7)
Cicli macchina = 4
I flag Z e C non sono influenzati

Torna all'inizio


SLA -- ruota a sinistra senza riporto

Ruota a sinistra i bit dell'accumulatore. Trasferisce il bit 7 nel Carry cancellando il valore precedente. Equivale a una moltiplicazione per 2. Formati possibili:

A = registro accumulatore
Clicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C riporta il valore del bit 7

Torna all'inizio


STOP -- blocca il funzionamento del micro

Blocca l'oscillatore di clock mettendo in standby tutto il microprocessore. Formati possibili:

Clicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio


SUB -- sottrazione

Il contenuto di una variabile viene sottratto al contenuto dell'accumulatore ed il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
X,Y,V,W = registri del micro
rr = indirizzo della variabile (1 byte)
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C e' settato se il contenuto dell'accumulatore e' minore della variabile o del registro, resettato se maggiore o uguale.

Torna all'inizio


SUBI -- sottrazione immediata

Un numero viene sottratto al contenuto dell'accumulatore ed il risultato e' memorizzato nell'accumulatore. Formati possibili:

A = registro accumulatore
nn = numero di 1 byte
Cicli macchina = 4
Il flag Z e' settato se il risultato e' 0, resettato se diverso da 0
Il flag C e' settato se il contenuto dell'accumulatore e' minore del numero, resettato se maggiore o uguale.

Torna all'inizio


WAIT -- stato di attesa

Mette in standby il microprocessore, ma l'oscillatore di clock rimane attivo. Formati possibili:

Clicli macchina = 2
I flag Z e C non sono influenzati

Torna all'inizio