Corso 8051 - SET D'ISTRUZIONI


ISTRUZIONI MATEMATICHE


ADD, ADDC

Istruzione: ADD, ADDC
Funzione: Somma l'Accumulatore, Somma l'Accumulatore con riporto
Sintassi: ADD A,operando
ADDC A,operando

Istruzione OpCode N.Byte N.Cicli Flag
ADD A,#data 0x24 2 1 C, AC, OV
ADD A,iram addr 0x25 2 1 C, AC, OV
ADD A,@R0 0x26 1 1 C, AC, OV
ADD A,@R1 0x27 1 1 C, AC, OV
ADD A,R0 0x28 1 1 C, AC, OV
ADD A,R1 0x29 1 1 C, AC, OV
ADD A,R2 0x2A 1 1 C, AC, OV
ADD A,R3 0x2B 1 1 C, AC, OV
ADD A,R4 0x2C 1 1 C, AC, OV
ADD A,R5 0x2D 1 1 C, AC, OV
ADD A,R6 0x2E 1 1 C, AC, OV
ADD A,R7 0x2F 1 1 C, AC, OV
Istruzione OpCode N.Byte N.Cicli Flag
ADDC A,#data 0x34 2 1 C, AC, OV
ADDC A,iram addr 0x35 2 1 C, AC, OV
ADDC A,@R0 0x36 1 1 C, AC, OV
ADDC A,@R1 0x37 1 1 C, AC, OV
ADDC A,R0 0x38 1 1 C, AC, OV
ADDC A,R1 0x39 1 1 C, AC, OV
ADDC A,R2 0x3A 1 1 C, AC, OV
ADDC A,R3 0x3B 1 1 C, AC, OV
ADDC A,R4 0x3C 1 1 C, AC, OV
ADDC A,R5 0x3D 1 1 C, AC, OV
ADDC A,R6 0x3E 1 1 C, AC, OV
ADDC A,R7 0x3F 1 1 C, AC, OV

Descrizione: ADD e ADC sommano entrambi il valore operando all'Accumulatore e mettono il risultato nell'Accumulatore stesso. Il valore dell'operando non viene modificato. ADD e ADC funzionano nella stessa maniera eccetto il fatto che ADC tiene conto anche del riporto (Carry Flag).

Il bit Carry (C) e'settato se c'e' un riporto del bit 7. In altre parole, se il valore della somma senza segno tra l'Accumulatore e l'operando (e anche di C nel caso di ADC) supera il valore di 255 il bit C e' settato altrimenti resettato.

Il bit Auxillary Carry (AC) e' settato se c'e' un riporto del bit 3. In altre parole, se il valore della somma senza segno tra l'Accumulatore e l'operando (e anche di C nel caso di ADC) supera il valore di 15 il bit AC e' settato altrimenti resettato.

Il bit Overflow (OV) e' settato se il bit 6 o il bit 7 hanno il riporto, ma non entrambi. In altri termini, se se il valore della somma con segno tra l'Accumulatore e l'operando (e anche di C nel caso di ADC) va fuori del range (da -128 a +127) il bit OV e' settato altrimenti resettato.

Vedi anche: SUBB, DA, INC, DEC, Set d'istruzione



DA

Istruzione: DA
Funzione: Aggiusta il valore Decimale dell'Accumulatore
Sintassi: DA A

Istruzione OpCode N.Byte N.Cicli Flag
DA 0xD4 1 1 C

Descrizione: DA aggiusta il contenuto dell'Accumulatore al corrispondente numero BCD (Binary Coded Decimal) dopo che due numeri BCD sono stati addizionati con ADD o ADDC. Se il bit C e' settato o se il valore del nibble meno significativo supera il valore 9, 0x06 viene aggiunto all'Accumulatore. Se il bit C era gia' da uno prima dell' inizio dell'istruzione oppure 0x06 era gia' stato addizionato nella prima fase, 0x60 viene aggiunto all'Accumulatore.
Il bit Carry(C) e' settato se il risultato finale supera 0x99, altrimenti e' resettato.

Vedi anche: ADD, ADDC, Set d'istruzioni



DEC

Istruzione: DEC
Funzione: Decrementa il Registro
Sintassi: DEC registro

Istruzione OpCode N.Byte N.Cicli Flag
DEC A 0x14 1 1 Inv
DEC iram addr 0x15 2 1 Inv
DEC @R0 0x16 1 1 Inv
DEC @R1 0x17 1 1 Inv
DEC R0 0x18 1 1 Inv
DEC R1 0x19 1 1 Inv
DEC R2 0x1A 1 1 Inv
DEC R3 0x1B 1 1 Inv
DEC R4 0x1C 1 1 Inv
DEC R5 0x1D 1 1 Inv
DEC R6 0x1E 1 1 Inv
DEC R7 0x1F 1 1 Inv

Descrizione: DEC decrementa il valore del registro di 1. Se il valore iniziale del registro e' zero, esso sara' portato a 255 (0xFF esadecimale). Nota: Il bit C non viene settato nel passaggio da 0 a 255 (rolls over).

Vedi anche: INC, SUBB, Set d'istruzioni



DIV

Istruzione: DIV
Funzione: Divide l'Accumulatore per B
Sintassi: DIV AB

Istruzione OpCode N.Byte N.Cicli Flag
DIV AB 0x84 1 1 C, OV

Descrizione: Divide il valore senza segno dell'Accumulatore per il valore senza segno del registro "B". Il quoziente della divisione viene posto nell'Accumulatore ed il resto in "B".

Il bit Carry (C) e' sempre azzerato.

Il bit Overflow (OV) e' settato se viene tentata una divisione per zero, altrimenti e' resettato.

Vedi anche: MUL AB, Instruction Set



INC


Istruzione: INC
Funzione: Incrementa il Registro
Sintassi: INC registro

Istruzione OpCode N.Byte N.Cicli Flag
INC A 0x04 1 1 Inv
INC iram addr 0x05 2 1 Inv
INC @R0 0x06 1 1 Inv
INC @R1 0x07 1 1 Inv
INC R0 0x08 1 1 Inv
INC R1 0x09 1 1 Inv
INC R2 0x0A 1 1 Inv
INC R3 0x0B 1 1 Inv
INC R4 0x0C 1 1 Inv
INC R5 0x0D 1 1 Inv
INC R6 0x0E 1 1 Inv
INC R7 0x0F 1 1 Inv
INC DPTR 0xA3 1 2 Inv

Descrizione: INC incrementa il valore del registro di 1. Se il valore inizialedel registro e' pari a 255 (0xFF esadecimale) tale incremento lo portera' a zero. Nota: il bit C non viene settato dal passaggio da 255 a 0 (rolls over).

Nel caso di "INC DPTR", viene incrementato il valore a 2 byte di DPTR come un intero senza segno. Se il valore iniziale di DPTR e' 65535 (0xFFFF esadecimale) l'incremento portera' DPTR a zero. Anche in questo caso il bit C non viene settato.

Vedi anche: ADD, ADDC, DEC, Set d'istruzioni



MUL


Istruzione: MUL
Funzione: Moltiplica l'Accumulatore per B
Sintassi: MUL AB

Istruzione OpCode N.Byte N.Cicli Flag
MUL AB 0xA4 1 4 C, OV

Descrizione: Moltiplica il valore senza segno dell'Accumulatore per il valore senza segno del registro "B". Il byte piu' significativo del risultato e' posto nell'Accumullatore e quello meno significativo in B.

Il bit Carry (C) e sempre azzerato.

Il bit Overflow (OV) e' settato se il risultato dell'operazione e' maggiore di 255, altrimenti e' resettato.

Vedi anche: DIV, Set d'istruzioni



SUBB


Istruzione: SUBB
Funzione: Sottrai dall'Accumulatore con il prestito
Sintassi: SUBB A,operando

Istruzione OpCode N.Byte N.Cicli Flag
SUBB A,#data 0x94 2 1 C, AC, OV
SUBB A,iram addr 0x95 2 1 C, AC, OV
SUBB A,@R0 0x96 1 1 C, AC, OV
SUBB A,@R1 0x97 1 1 C, AC, OV
SUBB A,R0 0x98 1 1 C, AC, OV
SUBB A,R1 0x99 1 1 C, AC, OV
SUBB A,R2 0x9A 1 1 C, AC, OV
SUBB A,R3 0x9B 1 1 C, AC, OV
SUBB A,R4 0x9C 1 1 C, AC, OV
SUBB A,R5 0x9D 1 1 C, AC, OV
SUBB A,R6 0x9E 1 1 C, AC, OV
SUBB A,R7 0x9F 1 1 C, AC, OV

Descrizione: SUBB sottrae il valore dell'operando dal valore dell'Accumulatore, lasciando il risultato nell'Accumulatore stesso. Il valore dell'operando non viene modificato.

Il bit Carry (C) viene settato se e' stato richiesto il prestito per il bit 7, altrimenti e' resettato. In altre parole, se il valore da sottrarre e' maggiore dell'Accumulatore il bit C e' settato.

Il bit Auxillary Carry (AC) e' settato se il prestito e' richiesto dal bit 3. In altre parole, il bit e' settato se il nibble meno significato del valore da sottrarre e' stato piu' alto del nibble meno significativo dell'Accumulatore.

Il bit Overflow (OV) e' settato se il prestito e' stato richiesto dal bit 6 o dal bit 7, ma non da entrambi. In altri termini, il bit OV e' settato se la sottrazione di due byte con segno ha dato come risultato un valore fuori del range (da -128 a +127), altrimenti e' resettato.

Vedi anche: ADD, ADDC, DEC, Set d'istruzioni



^ INDICE
< SET D"ISTRUZIONI

(C) Copyright 1997, 1998 by Vault Information Services. All Rights Reserved.
Le informazioni sono fornite senza alcuna garanzia. Per favore vedi dettagli.
Contattaci per l'uso e/o il permesso di divulgazione di questo corso.
Traduzione italiana di: Sergio Salvitti
1