Documente Academic
Documente Profesional
Documente Cultură
Up Lucrarea 02 PDF
Up Lucrarea 02 PDF
Lucrarea 2
P.Lucrare.02.A
Setul de instructiuni al microprocesorului 8086
Coninut
1. Introducere ......................................................................................................................2
1.1. Scop .........................................................................................................................2
2. Setul de instructiuni al microprocesorului 8086 ..........................................................3
3. Moduri de adresare la microprocesorul 8086...............................................................3
3.1. Adresarea imediata ..................................................................................................3
3.2. Adresarea registru ....................................................................................................3
3.3. Moduri de adresare pentru date aflate (sau care se doresc a fi plasate) in memorie
4
3.3.1. Adresarea directa .............................................................................................4
3.3.2. Adresarea indirecta (prin registru) ....................................................................5
3.3.3. Adresarea indexata...........................................................................................6
4. Tipuri de instructiuni al microprocesorului 8086.........................................................6
4.1. Instruciuni pentru transerul de date .........................................................................6
4.1.1. Instructiuni de uz general..................................................................................6
4.1.2. Instruciuni de transfer intrare/ieire .................................................................7
4.2. Instruciuni aritmetice................................................................................................7
4.3. Instructiuni pentru operatii cu biti ..............................................................................9
4.3.1. Instruciuni logice ..............................................................................................9
4.3.2. Instruciuni de deplasare i de rotire (SHL, SAL, SHR i SAR) ......................10
4.3.3. Instruciunile de rotire ROR, ROL, RCR, RCL ................................................11
4.4. Instruciuni de salt...................................................................................................11
4.4.1. Instruciuni de salt condiionat ........................................................................11
4.4.2. Instruciuni de salt necondiionat (CALL, RET i JMP) ...................................14
4.4.3. Instructiuni pentru controlul iteraiilor ..............................................................15
4.5. Instruciuni pentru controlul procesorului ................................................................15
4.6. Instruciuni pe iruri ................................................................................................16
5. Aplicaii ..........................................................................................................................16
Lista de figuri
Figura 2. 1 Deplasare logic la dreapta .................................................................................11
Figura 2. 2 Deplasare aritmetic la dreapta ...........................................................................11
1. Introducere
1.1. Scop
Aceast lucrare prezint:
modurile de adresare puse la dispozitie de acest microprocesor, din punctul de
vedere al utilizarii lor in practica programarii
setul de instructiuni al microprocesorului 8086
L.2 - 2/17
Setul de instructiuni al microprocesorului 8086
L.2 - 3/17
Setul de instructiuni al microprocesorului 8086
Aceasta permite ca instructiunea sa fie scurta si sa se execute foarte rapid (datorita vitezei
sporite de accesare a registrelor interne ale microprocesorului). Din acest motiv, registrele
sunt cel mai bun loc de plasare a variabilelor foarte des utilizate.
3.3. Moduri de adresare pentru date aflate (sau care se doresc a fi plasate) in
memorie
Exista in principal trei moduri adresare pentru accesarea datelor in memorie: adresarea
directa, adresarea indirecta si adresarea indexata.
Modurile de adresare reprezinta, in acest caz, diferite modalitati de a specifica adresa datei,
mai exact a ofsetului acesteia. Reamintim ca ofsetul (sau deplasamentul) reprezinta
distanta, in octeti, de la inceputul unui segment pana la locatia de memorie in care este
continuta data.
Ofsetul datei din memorie va fi calculat de unitatea de executie pe baza modului de adresare
specificat in instructiune, iar rezultatul se numeste adresa efectiva.
Uzual, datele se pot afla (sau se doresc a fi plasate), in memorie, in segmente de date (Data
Segment) sau de stiva (Stack Segment).
De retinut ca, pentru a se asigura localizarea datelor in memorie, fiecare aplicatie trebuie sa-
si defineasca de la inceput adresele de baza ale segmentelor. Reamintim ca adresa de baza
a segmentului de date curent este continuta in registrul DS, iar cea a segmentului de stiva
curent este continuta in registrul SS.
In continuare, pentru simplificarea prezentarii, se presupune ca adresele de baza ale
segmentelor au fost stabilite, iar segmentul care va fi utilizat implicit este segmentul de date.
DS
offset
mov AL,[100h]
[100h] AL
Este mai comod ca offset-ul sa se specifice printr-un nume simbolic, reprezentand numele
unei variabile simple, ca in exemplul urmator.
L.2 - 4/17
Setul de instructiuni al microprocesorului 8086
DS
offset
mov alfa, AL
alfa AL
3) Variabilele pot desemna date reprezentate in memorie pe unul sau mai multi octei,
dupa cum sunt declarate. Sa luam urmatorul exemplu, in care variabila este de tip cuvant
(doi octeti).
DS
offset
mov beta, AX
beta AX
L.2 - 5/17
Setul de instructiuni al microprocesorului 8086
DS
offset
mov [BX], AX
[BX] AX
DS
depl
[SI] +
mov depl[SI], AL
offset = depl + [SI] AL
L.2 - 6/17
Setul de instructiuni al microprocesorului 8086
Dac adresa portului este mai mare dect 255 atunci adresa portului se transmite prin
registrul DX.
Exemple:
direct, prin adresa fizica (daca adresa este exprimabila pe un octet) sau nume simbolic
IN AL, 12h
OUT 33h, AL
indirect, prin adresa continuta in registrul DX
IN AL,DX
OUT DX,AL
L.2 - 7/17
Setul de instructiuni al microprocesorului 8086
L.2 - 8/17
Setul de instructiuni al microprocesorului 8086
Exemple:
L.2 - 9/17
Setul de instructiuni al microprocesorului 8086
;exemplu pentru OR
MOV AL, 35h ;ncarc AL 00110101
OR AL, 08h ;OR cu valoare imediat 00001000
; ------------
; rezultat 00000111
TEST <parametru_1>,<parametru_2>
Exemple:
TEST AL, 00010000b ; se verific dac bitul D4 din al este zero sau nu
TEST BL, 0fh ;se verifica dac prima cifr hexazecimal din bl este 0
Sintaxa instruciunilor:
Parametrul specific numrul de poziii binare cu care se face deplasare; acest parametru
poate fi 1 sau dac numrul de pai este mai mare atunci se indica prin registrul CL.
La deplasarea la dreapta se dorete meninerea semnului operandului, de aceea bitul mai
semnificativ (semnul) se menine i dup deplasare. La deplasarea la stnga acest lucru nu
este necesar, de aceea instruciunile SHL i SAL reprezint aceeai instruciune.
L.2 - 10/17
Setul de instructiuni al microprocesorului 8086
n Figura 2. 1Figura 2. 2, (n care n=8 sau 16), s-a reprezentat o deplasare logic i o
deplasare aritmetic la dreapta. Bitul care iese din operand este nscris n indicatorul de
transport CF.
Dn ............... D1 D0 CF ROR
Dn ................ D1 D0 CF RCR
Sintaxa fiind aceeai pentru toate cele patru instruciuni s-a ales ROR:
Exemple:
; un numr stocat n AX este nmulit cu 10
L.2 - 11/17
Setul de instructiuni al microprocesorului 8086
L.2 - 12/17
Setul de instructiuni al microprocesorului 8086
Observaie: relaiile de ordine (mai mic, mai mare, etc.) se stabilesc ntre primul i al doilea
parametru al operaiei de comparare.
Exemplul 1. Stocarea n memorie, n ordine cresctoare, a dou numere fr semn, reprezentate pe 16
bii. Se cere ca numrul de valoare mai mic se se ncarce la adresa mai mic. Offset-ul primului
numr este n BX ; cel de-al doilea numr este coninut n registrul DI
AE10: JA A10
........ ; Instructiuni pentru AL = 10.
........
A10: ........ ; Instructiuni pentru AL > 10.
........
Exemplul 3.
; daca (CX<-20) atunci DX=30 altfel DX=20
CMP CX, -20
JL LESS
MOV DX, 20
JMP CONT
LESS:
MOV DX, 30
CONT:
Exemplul 4.
ADD AX, BX
JO OVERFLOW ; salt la eticheta OVERFLOW daca s-a setat
; indicatorul de depasire OF pe 1
OVERFLOW:
L.2 - 13/17
Setul de instructiuni al microprocesorului 8086
b) n exemplul urmtor sunt ilustrate schematic dou apeluri de procedur. Procedura 2 este
apelat n corpul procedurii 1.
L.2 - 14/17
Setul de instructiuni al microprocesorului 8086
Pentru instruciunea LOOP se execut bucla att timp ct valoarea din registrul CX nu este
0, condiia de terminare a ciclului este CX=0, adic contorul ajunge la 0. Pentru instruciunea
LOOPZ n plus ciclul se ncheie i n cazul n care ZF=0. La instruciunea LOOPNZ ieirea
din bucl se face pentru ZF=1.
Exemplu:
MOV CX, 100 ; ncarc n registrul CX cu constanta 100
et1: ..... ; aici ncepe grupul de instruciuni ce urmeaz a fi repetat
.....
LOOP et1 ; dac CX nu este 0, salt la et1; ciclul se va executa de 100 de ori
..... ; altfel, se continu de aici
Exemplu:
MOV CX, 100
et1:
DEC CX
CMP CX, 0
JNE et1
L.2 - 15/17
Setul de instructiuni al microprocesorului 8086
Instruciunile CLI i STI terg i respectiv seteaz indicatorul de ntrerupere IF. n starea
setat (IF=1) procesorul detecteaz ntreruperile mascabile, iar n starea invers blocheaz
toate ntreruperile mascabile.
Instruciunile CLD i STD modifica starea indicatorului de direcie DF. Prin acest indicator se
controleaz modul de parcurgere a irurilor la operaiile pe iruri: prin incrementare (DF=0)
sau prin decrementare (DF=1).
Instruciunea NOP (no operation) nu face nimic. Aceast instruciune se folosete n scopuri
de temporizare, pentru ntrzierea unor operaii sau pentru implementarea unor bucle de
ateptare.
Instruciunea HLT (halt) determin oprirea procesorului.
Instruciunea HIT determin oprirea temporar a procesorului pn la apariia unui semnal
de ntrerupere sau de iniializare (reset).
5. Aplicaii
L.2 - 16/17
Setul de instructiuni al microprocesorului 8086
L.2 - 17/17