Sunteți pe pagina 1din 1

L 4.

INSTRUCŢIUNILE PROCESORULUI – TIPURI DE INSTRUCŢIUNI


Instrucţiunile maşină reprezintă un cod care conţine codul operaţiei şi informaţii asupra
adreselor operanzilor şi rezultatului. Acestea pot avea lungime şi structură diferită. De regulă,
rezultatul se suprapune peste unul dintre operanzi, instrucţiunea având următorul format:
Cod operaţie Cod operand A Cod operand B
Execuţia instrucţiunilor poate afecta biţii de stare (Flag-uri) şi poate realiza operaţii
aritmetice, logice, de comparaţie, salturi în program, etc.

Identificarea operanzilor
Registre: acces prin nume (cod registru);
Memoria: acces prin adresă (cod adresă);
Stiva: acces secvenţial;
Flaguri (biţi indicatori): circuite bistabile (un bit).

Instrucţiunile de transfer
Instrucţiunile de transfer au structura cea mai simplă. În baza de informaţii TECH.exe (Data
Transfer Instructions) este dată lista instrucţiunilor de transfer, explicaţia acestora şi acţiunea
asupra operanzilor. De exemplu instrucţiunea: “MOV dest, src” realizează transferul de date
din locaţia “sursă” către locaţia “destinaţie”. Acestea pot reprezenta registre sau locaţii de
memorie, conform cu mecanismele de adresare. De exemplu, “mov ax, 1h” realizează
transferul valorii constante “1”, reprezentată în formă hexazecimală (baza 16) în registrul AX.
Aşa cum se observă din lista furnizată de “TECH.exe”, acţiunea unei instrucţiuni de transfer
şi tipul operanzilor pot fi diferite.
Pentru lucrul cu regiştrii sau cu memoria avem următoarele posibilităţi:
- Transfer între registre sau locaţii de memorie (MOV);
- Transfer reciproc (schimbarea conţinuturilor) între registre sau locaţii de memorie
(XCHG);
- Transferul de la un port (registru de comunicaţie cu alt dispozitiv, specificat prin
adresa sa), în registrul AL sau AX, respectiv pentru octet sau cuvânt (IN adr.port);
- Transferul datelor de la un registrul AL sau AX la un port, specificat prin adresă (OUT
adr.port);
- Transferul în AL a conţinutului adresei: ES:[BX+(AL)], cu adresa de segment ES şi
deplasamentul BX;
- Încarcarea valoarii unei adrese într-un registru de 16 biţi (LEA reg16, adr);
- Încarcarea registrului DS şi un registru de 16 biţi, cu conţinutul adresei date şi adresei
următoare(LDS reg16, mem);
- Încarcarea registrului ES şi un registru de 16 biţi, cu conţinutul adresei date şi adresei
următoare(LES reg16, mem).
*Construiţi tabelul de mai jos pentru următoarele tipuri de instrucţiuni:
transfer date (mov); schimbare date (xchg); transfer stivă (pop, push); transfer flaguri;
adunare şi scădere (cu şi fară “transport”); incrementare, decrementare, comparare.
Instrucţiune Schema operaţiei Tip operanzi Flag-uri implicate

(Informaţii: Tech.exe/80x86 opcodes/Instruction Set Matrix/ Data Transfer/ Arithmetic Logic/


Execution Control).
* Scrieţi şi verificaţi un program care să realizeze următoarele:
- Iniţializarea registrelor AX şi BX;
- Adunarea registrelor AX şi BX;
- Incrementarea lui AX şi decrementarea lui BX;
- Schimbarea conţinutului registrelor AX şi BX.

S-ar putea să vă placă și