8051 suporta urmatoarele moduri de adresare:
Directa
Indirecta
Pe registrii
Imediata
Indexata
Instructiunile MCU 8051 sunt incadrate in urmatoarele categorii:
Data transfer (MOV)
Arithmetic Instructions (ADD, SUBB, MUL, DIV)
Logical Instructions (RLC, RL, RR, RRC, CLR, SETB, ALR, RLC, CPL)
Boolean Instructions (ANL, ORL)
Program Control Transfer Instructions
In stiva sunt stocate variabilele temporare. Instructiunea PUSH pune date in stiva iar
instructiunea POP preia date din aceasta. Stiva este una de tip LIFO.
Instructiunile de transfer de date muta datele dintr-o locatie in alta. Acest transfer
poate avea loc intre registrii si memorie (fie ea interna sau externa)
Instructiunile aritmetice asigura operatiile de baza cum ar fi adunarea, scaderea,
inmultirea si impartirea, incrementarea si decrementarea.
Instructiunile logice efectueaza operatii de tipul OR, AND, XOR, complement etc.
Instructiunile booleene asigura operatiunile pe biti . Carry din SFR-ul PSW asigura
rolul acumulatorului pentru aceste operatii.
8051 suporta doua tipuri de instructiuni pentru transferul controlului:
Instructiuni neconditionale transfera PC la o adresa specificata din memoria de
program (JMP, CALL, RET, RETI respectiv NOP)
Instructiuni conditionale asigura transferul controlului bazand-une pe o conditie ce
trebuie indeplinita. (JZ – jump on Zero, JNZ – Jump on Non Zero, DJNZ – Decrement
and Jump if Non Zero, CJNE – Compare and Jump if Not Equal, JB – Jump if Bit is set,
JNB – Jump if Bit Not Set, JBC – Jump if Bit set and clear, JC – Jump if Carry respectiv
JNC.
Opcode – instructiune ce instruieste procesorul asupra operatiei ce trebuie sa o
indeplineasca
Operand/operanzi – parametrii necesari pentru executia unui opcode
Modul de adresare – specifica modalitatea in care operanzii sunt folositi in executia opcode-
ului
Adresarea directa – Modalitatea de adresare prin care operandul este furnizat ca o
adresa de memorie
Adresarea Indirecta : modalitate de adresare prin care locatia de memorie este
obtinuta indirect folosind unul dintre registrii
Register Addressing: Modalitate de adresare prin care operandul este furnizat prin
intermediul registrilor
Register Instructions : Instructiune in care operandul este oferit ca o parte a opcode-
ului
Register Specific Instructions : Instructiuni ce opereaza doar asupra anumitor registrii.
Adresarea Imediata : Modalitate de adresare prin care operandul este furnizat ca o
constanta
Adresare Indexata: Modalitate de adresare prin care operandul este furnizat sub
forma unui index.
Instructiuni de transfer de date: Acele instructiuni care copiaza datele dintr-o locatie
in alta.
Stiva : memorie interna folosita pentru stocarea variabilelor
PUSH – instructiunea de incarcare a datelor in stiva
POP – instructiunea pentru preluarea datelor din stiva
Instructiuni de transfer de date : instructiuni ce incarca date din memorie in
accumulator
External Data Memory Instruction: instructiuni ce opereaza asupra memoriei
externe.
Instructiuni Aritmetice : instructiuni ce ofera posibilitatea de a efectua operatii
aritmetice simple (adunare, scadere, inmultire, impartire, incrementare,
decrementare)
Al 2'lea complement: reprezentare binara a numerelor folosita in operatia de
scadere.
Binary Coded Decimal: reprezentare in binar a numerelor in baza 10 folosind digiti de
la 0 la 9.
Unpacked BCD : un digit (0-9) reprezentat pe un singur octet
Packed BCD : doi digiti reprezentati pe un singur octet (00-99)
Instructiuni Logice: Instructiuni ce efectueaza logica operationala (RL, RR, RRC, RLC)
Instructiuni Booleene: Instructiuni ce opereaza la nivel de bit, manipularea bitilor
(CLR, SETB, OR, XOR, AND, CPL)