Sunteți pe pagina 1din 6

MINISTERUL EDUCAȚIEI, CULTURII ȘI CERCETĂRII

AL REPUBLICII MOLDOVA
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică şi Microelectronică
Departamentul Informatică şi Ingineria Sistemelor

Leşan Natalia,gr IBM-191.

Raport
pentru lucrarea de laborator Nr.1

la cursul “ACR”

Arhitectura microprocesorului Intel 8086

Verificat:
Cretu Vasilii

Chișinău – 2020

1
Scopul lucrării

a) Studiul arhitecturii interne a microprocesorului Intel 8086.

b) Studiul resurselor interne (registre) si externe (memoria


principala) ale microprocesorului I 8086.

c) Programarea microprocesorului Intel 8086.

Scurta teorie:
*Microprocesorul este o unitate centrala de prelucrare (UCP) realizata
intr-un singur circuit integrat. Un sistem digital de prelucrare realizat
cu ajutorul unui microprocesor este numit microcalculator.
Microcalculatorul are trei functii principale: prelucrarea informatiilor
in UCP, stocarea informatiilor in memorie si transferul informatiilor in
interior si cu mediul exterior. Prin intermediul unor interfete, numite
porturi de intrare/iesire (IO), microcalculatorul transfera informatii cu
elementele mediului exterior, numite echipamentele periferice.

Microprocesorul Intel 8086 comunica cu exteriorul (MP si IO) prin


3 bus-uri sau magistrale:

- bus-ul de date (BD), care are 16 biti;

- bus-ul de adrese (BA), care are 20 biti;

- bus-ul de comenzi (BC).

Unitatea de executie (UE) se compune din:

1. Unitatea aritmetica-logica (ALU), care executa operatii


aritmetice, logice, deplasari si rotatii.

2. Registrele temporare (RT), care preiau operanzii de pe bus-ul


intern si ii ofera unitatii ALU. Impreuna cu ALU formeaza un automat
RALU.

1
3. Registrul de flag-uri F (biti indicatori de stare a ultimei operatii
ALU), actualizat de catre ALU.

4. Blocul de comanda, care:

- decodifica codul instructiunii curente (preluat din coada de


instructiuni Q);

- da comenzi interne catre celelalte blocuri ale UE pentru:

- calculul adreselor efective ale operanzilor din MP sau IO (daca


este cazul),

- executia operatiei (ALU, transfer, etc.);

- da comenzi externe (informatii / cereri) catre UI pentru:

- calculul adreselor fizice a operandului din MP sau IO (daca este


cazul),

- transferul operanzilor dinspre/catre MP sau IO (daca e cazul),

- transferul (citirea) operanzilor de tip imediat din coada de


asteptare a UI (daca e cazul),

- calculul adresei urmatoarei instructiuni.

Raportul trebuie sa conțină:

1. Codul unui program simplu cu


comentariile la fiecare instrucțiune utilizată
2. Rezultatul îndeplinirii programului
3. Concluzia
1
1. Codul unui program simplu cu comentariile la fiecare instrucțiune utilizată
Calc
; This sample gets two numbers
; from the user, calculates the
; sum of these numbers,
; and prints it out.

#make_COM#

include 'emu8086.inc'

ORG 100h

; skip variable declaration:


JMP START // Salt necondiționat. Transfera controlul către alta
parte a programului

; declaration of variable:
num DW ?

START:

; get first number:


CALL PTHIS
DB 13, 10, 'Calculation Range: [-32768..32767]', 13, 10
DB 13, 10, 'Enter first number: ', 0

CALL scan_num // reprezinta un apel indepartat.

; keep first number:


MOV num, CX // Copie operandul 2 în operandul 1.

; get second number:


CALL PTHIS
msg2 DB 13, 10, 'Enter second number: ', 0

CALL scan_num

; add numbers:
ADD num, CX // operandul 1 = operandul 1 + operandul 2
JO overflow // Salt scurt dacă deverseaza.
Conditia: daca OF = 1 atunci salt

1
; print the result:
CALL PTHIS
DB 13, 10, 'The sum is: ', 0

MOV AX, num


CALL print_num

JMP exit

; process overlow error:


overflow:

PRINTN 'We have overflow!'

exit:

RET // Returneaza procedura apropiata.

;=================================
; here we define the functions
; from emu8086.inc

; SCAN_NUM reads a
; number from the user and stores
; it in CX register.

DEFINE_SCAN_NUM

; PRINT_NUM prints a signed


; number in AX.
; PRINT_NUM_UNS prints an unsigned
; number in AX (required by
; PRINT_NUM):

DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS

; PTHIS prints NULL terminated


; string defined just after
; the CALL PTHIS instruction:
DEFINE_PTHIS

;=================================
END

1
Acest program primeste doua numere de la utilizator,dupa care
calculeaza suma acestora si le imprima.

2. Rezultatul îndeplinirii programului

3.Concluzia
In aceasta lucrare de laborator am studiat arhitectura
interna,resursele interne (registre) si externe (memoria principala) ale
microprocesorului I 8086.

Am ales un program simplu la dorinta si am comentat fiecare


instructiune utilizata ,dupa care am dat la compilare si evident ne-a
aparut raspunsul programului dat.

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