Sunteți pe pagina 1din 19

Introducere

Arhitectura Sistemelor de Calcul

Conf. dr. ing. Laurentiu Margarit


Lect. drd. Luciana Morogan

Facultatea de Sisteme Electronice si Informatice Militare


ATM

Capitol 1
Introducere

Cuprins

1 Introducere
Necesitatea limbajului de asamblare (ASM)
Calculatoare secventiale - schema bloc
Formate de reprezentare
Tipuri de date utilizate in ASM
Introducere

Necesitatea limbajului de asamblare (ASM)

ASM (1)

Intelegerea in amanunt a ceea ce se intampla in realitate


intr-un PC
Necesitatea: viteza de executie si acces hardware ce nu
pot fi disponibile (cel mai adesea) in limbaje de nivel inalt.
Exemple:
module critice ale unor aplicatii sunt scrise ca proceduri
ASM apelate la randul lor de module de nivel inalt
situatii in care e nevoie de acces direct la dispzitive I/O sau
locatii fizice de memorie (pe PC-uri: programe TSR si
rutine de tratare a intreruperilor)
Dezvoltarea de programe pentru echipamente dedicate.
Introducere

Necesitatea limbajului de asamblare (ASM)

ASM (2)

Alte aplicatii:
dezvoltarea microprocesoarelor → functionarea diverselor
obiecte tehnice, echipamente (exemple?)
microprocesoare specializate (micro-controllere indstriale,
procesoare semnal, automate programabile, etc.)
Scopul cursului: de a ofer mijloace de dezvoltare de
module ASM eficiente si integrarea lor in aplicatii
complexe.
Introducere

Calculatoare secventiale - schema bloc

Calculatoare secventiale (1)

Ipoteze de lucru:
instructiunile unui program apartin memoriei la adrese
consecutive
unitatea centrala executa o singura instructiune la un
anumit moment dat
Introducere

Calculatoare secventiale - schema bloc

Calculatoare secventiale (2)

UCP (clasic):
UC propriu-zisa:: microprocesor (UC complet integrata)::
executa instructiuni
Fazele unei instructiuni
extragere (citirea din memorie a codului obiect aferent unei
instructiuni)
decodificare (descompunerea codului obiect in
micro-operatii implementate hardware; micro-operatiile::
automate secventiale finite cu memorie, microprocesorul
fiind o stare a automatului)
executia propriu-zisa (parcurgerea schemei logice a
automatului finit aferent instructiunii)
SI:: sistemul de tratare a intreruperilor
SDMA:: sistemul Direct Memory Access
Sisteme ceas si sincronizare
Introducere

Calculatoare secventiale - schema bloc

Calculatoare secventiale (3)

Resursele unei UC:


gama de reprezentare (dimensiunea unui operand) si
formate de reprezentare
set registrii generali
indicatori conditii (iesiri ale unitatii aritmeice si logice
memorate intr-un bistabil)
mecanisme de adresare
set instructiuni
arhitecturi interne
conexiuni electrice
Introducere

Calculatoare secventiale - schema bloc

Basic hardware

(ASM) Calculatorul 7−→ vazut la nivel hardware.


Bit (binary digit) 7−→ unitate de baza a informatiei
memorate; reprezinta o cifra binara (0 sau 1)
Bistabil (model hardware al bitului) 7−→ circuit electronic
cu 2 stari stabile (codificate 0 sau 1) capabil sa memoreze
un bit de informatie
Registru 7−→ grup de bistabili. Registru de n biti poate
memora 2n combitii distincte de informatie (daca n = 8,
octeti/bytes; pentru n = 16, 32 ...?).
Exp: 8 bistabili → registru de 8 biti. Numarul combinatiilor
ce pot fi memorate este de...?
Introducere

Calculatoare secventiale - schema bloc

Blocul de memorie

Nivel fizic
Fiecare intrare selecteaza in mod fizic, unic, o locatie de
memorie
Informatia este stocata folosind bistabili
Nivel virtual
Informatia poate fi stocata folosind coduri de reprezentare
Introducere

Calculatoare secventiale - schema bloc

Blocul de memorie (1)

Memoria 7−→ succesiune de octeti, fiecaruia fiindu-i


asociata o adresa de memorie. Pentru adresare:: registru
de adrese (lungimea registrului → dimensiunea maxima a
memoriei).
Celula 7−→ cea mai mica unitate de memorie adresabila.
Standard
1 celula = 8 biti

Exp. Calculator cu un cuvant de


32 biti ⇒ 4 octeti/cuvant
64 biti ⇒ 8 octeti/cuvant
Majoritatea instructiunilor opereaza cu cuvinte intregi ⇒ o
masina pe 32(64) biti are registre de 32 (64) biti si instructiuni
de prelucrare a cuvintelor de 32 (64) biti.
Introducere

Calculatoare secventiale - schema bloc

Blocul de memorie (2)

1110 = 10112 ⇒ adresa: maxim 4 biti ⇒

24 = 16 (maxim 16 celule adresabile)

Pot exprima cele 16 celule adresabile si


prin:
12 biti/celula sau
16 biti/celula
=⇒
Introducere

Calculatoare secventiale - schema bloc

Blocul de memorie (3)

Concluzie! Numarul bitilor ce formeaza adresa depide de numarul maxim de celule


adresabile direct in memorie si nu de numarul de biti ai celulei.
Introducere

Calculatoare secventiale - schema bloc

Memoria procesorului 8086

Registru de adrese de 20 biti ⇒ poate adresa 220 octeti


memorie (1 megaoctet)
Introducere

Calculatoare secventiale - schema bloc

Blocul de memorie - semnificatii speciale

Program Counter (Contorul Program):: registru ce


contine adresa instructiunii ce urmeaza a fi executata
Stiva:: zona speciala de memorie (concept abstract de
structura de date) caracterizata de o adresa curenta
(adresa varfului stivei) adresata printr-un regisru special
SP (Stack Pointer, indicator de stiva)
Folosita: explicit pentru salvari si refaceri de date si implicit
pentru mecanismul de apel de procedura
Operatii de baza cu stiva:
PUSH(x):: adaugarea in stiva a lui x
POP(x):: extragerea din stiva a lui x

PUSH(x) POP(x)
(SP) ← (SP) − 1 x ← ((SP))
((SP)) ← x (SP) ← (SP) + 1
————————————- ————————————-
(SP) - continutul lui SP ((SP)) - continutul locatiei de
memorie adresate de SP
Introducere

Calculatoare secventiale - schema bloc

Spatii de memorie ale unui program

zona de cod - cuprinde instructiunile


zona de date - cuprinde date statice (adrese fixe) definite
in program; datele pot fi: constante, initializate sau
neinitializate, etc.
zona de stiva - cuprinde stiva rezervata programului
zona de memorie disponibila - cuprinde spatiul rezervat
alocarilor dinamice, gestionat indirect prin apel la SO
Introducere

Formate de reprezentare

Reprezetari interne ale datelor

Date numerice
Baze de numeratie: 10, 2, 8 si 16
Numere intregi: BCD1 , CBN, CC2
Numere reale: in virgula fixa, in virgula mobila
Date nenumerice: ASCII

1
Pentru BCD impachetat o cifra BCD se reprezinta pe 1 octet.
Introducere

Tipuri de date utilizate in ASM

Tipurile de date byte si word

Byte (1 octet)
poate fi reprezentat
memoria interna
un registru de 8 biti al procesorului
interpretari
intreg pe 8 biti cu/fara semn
caracter ASCII
directiva: DB (Define Byte)

Word (2 octeti)

poate fi reprezentat OBS! Partea mai putin


semnificativa se memoreaza la
memoria interna adrese mai mici. Exp: pentru
un registru de 16 biti al procesorului 1234H
interpretari
intreg pe 16 biti cu/fara semn
secventa de doua caractere ASCII
adresa de memorie de 16 biti
directiva: DW (Define Word)
Introducere

Tipuri de date utilizate in ASM

Tipurile de date double word si quard-word

Double Word (4 octeti)


poate fi reprezentat
memoria interna
pereche de registrii de 16 biti/1 registru de 32 biti (procesor pe 32 biti
interpretari
intreg pe 32 biti cu/fara semn
numar real simpla precizie
adresa memorie de 32 biti
directiva: DD (Define Double-Word)

Quard Word (8 octeti)


poate fi reprezentat
memoria interna
pereche de registrii de 32 biti (numai la procesorul pe 32 biti
interpretari
intreg pe 64 biti cu/fara semn
numar real in dubla precizie
directiva: DQ (Define Quard)
Introducere

Tipuri de date utilizate in ASM

Tipul de date ten-bytes

Ten-Bytes (10 octeti)


poate fi reprezentat
memoria interna
in unul din registrii coprocesoarelor matematice 80x87
interpretari
numar intreg reprezentat ca secventa de cifre impachetate (BCD) cu semn
sau memorat explicit
numar real precizie extinsa
directiva: DT (Define Ten-Bytes)

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