Sunteți pe pagina 1din 15

Capitolul I

ELEMENTE DE BAZA ALE MICROCALCULATOARELOR


1.1. INTRODUCERE. ISTORIC
Tehnologia informaiei actual se sprijin pe microcalculator. Din punct de vedere
structural acesta cuprinde dou pari eseniale: suportul tehnic pentru prelucrarea
informaiei acceptat sub denumirea de hardware i totalitatea programelor care asigur
utilizarea resurselor tenice denumit software.
Dezvoltarea celor dou elemente structurale este legat de progresul tehnic din
ultimii 50 de ani, mai ales n domeniile: microelectronicii, mecanicii fine i automaticii.
Dezvoltarea microcalculatoarelor reprezint ns un salt calitativ fr precedent
cauzat de acumulrile n stiin i tehnologie dealungul unor epoci istorice.
Epoca mecanic (-500, 1889)
Cu 500 de ani nainte de Cristos, Babilonieni au inventat abacul, calculatorul manual
cu bile. El a fost utilizat nentrerupt timp de peste 2000 de ani i a permis crearea
algoritmilor de calcul aritmetic.
In anul 1642 Blaise Pascal a construit calculatorul mecanic zecimal cu roi dinate.
Acest gen de calculatoare s-a utilizat sute de ani i a permis realizarea integratorului
mecanic pe principiul contorului mecanic.
Ideea calculatorului automat cu program a fost dezvoltat de Charles Babbage n anul
1823, cnd Royal Astronomical Society din Marea Britanie la nsrcinat cu realizarea
unei maini de calcul programate n vederea determinrii traiectoriilor unor corpuri
cereti. Proiectul denumit " maina analitic " a fost realizat, precum i o parte dintre
subansamblele acesteia cum ar fi dispozitivul aritmetic i memoria de capacitate 1000
cuvinte de 20 cifre zecimale. Introducerea datelor se fcea pe cartele perforate. Proiectul
nu a putut fi realizat datorit dificultailor de natur tehnic, maina necesitnd peste
50.000 de piese de mecanic fin, imposibil de realizat cu tehnologia acelor vremi.
Proiectul a fost abandonat, uitat i s-a rtcit, fiind gsit n anul 1937 i a constituit un
document important n cercetrile privind evoluia calculatoarelor. Acest priect a introdus
principiul mainilor de calcul cu program memorat.
Epoca electric (1889, 1942)
Dup anul 1800 s-au perfecionat mainile de calcul de tip Pascal care au fost apoi
dotate cu motoare electrice. Aceste maini au constituit principalele echipamente de
calcul n toate birourile pn prin deceniul 7 al secolului nostru, cnd au fost eliminate de
apariia calculatoarelor electronice de birou.
In anul 1889 Herman Hollerith a introdus cartela perforat, propus de Babbage, la
noile maini de memorare, sortare i calcul, dotate cu motoare electrice. Cu aceste maini
Hollerith a realizat n S.U.A.calculele de evidena a recensmntului din anul 1890.
In anul 1896 Hollerith a fondat compania Tabulating Machine Company, care realiza
linii de calculatoare electromecanice cu cartele perforate.
Aceast companie dup mai multe transformri i schimbri de nume a fost numit
International Business Machine Corporation sau IBM. Acest gen de maini a dominat
piaa prelucrrii informaiei timp de peste 50 de ani, fiind utilizate i n centrele de calcul
pn prin anul 1975.

Epoca electronicii (1942, 1971)


Primul calculator electronic a fost realizat cu tuburi electronice de ctre Konrad Zuse
n anul 1942, ca urmare a eforturilor de rzboi fcute de ctre tehnologia german, fiind
denumit Z3.
In S.U.A. primul calculator electronic a fost realizat de ctre Alan Turing tot cu
tuburi electronice, n anul 1943. Acesta a fost denumit Colossus datorit dimensiunilor
sale, fiind un calculator neprogramabil dedicat decriptrii codurilor militare germane.
Primul calculator programabil de uz general a fost realizat la universitatea din
Pensylvania cu numele ENIAC (Electronic Numerical Integrator and Calculator). Era o
main gigant coninnd 17.000 de tuburi electronice, 500 mile de cabluri, avea viteza de
lucru de 100.000 de operaii/secund i cntrea 30 de tone.
Dup inventarea tranzistorului n anul 1948, au fost realizate calculatoare cu
tranzistori de dimensiuni mai reduse, iar dup inventatarea circuitul integrat n anul 1958
de ctre Jack Kilby, s-a trecut la realizarea minicalculatoarelor.
Firma DEC a realizat prima serie de minicalculatoare cu magistral unic i procesor
de sine stttor, punnd bazele microprocesorului. Deceniul 1970-1980 a fost dominat de
minicalculatoare care au disprut apoi complet de pe piaa.
Epoca microprocesoarelor (1971- ...)
In anul 1971 Marcian Hoff de la Intel a realizat microprocesorul de 4 bii I-4004
destinat pentru monitorizarea terminalelor video. Avnd o vitez de numai 50.000 de
operaii/secund, mai lent dect ENIAC, nu a putut fi folosit la terminale video. Cntrea
ns numai 10 grame, fiind utilizat n echipamente de jocuri electronice i de ctre
amatori. Ulterior Intel a realizat varianta I-4040 cu o frecvena de 2 MHz fiind un
microprocesor ce s-a utilizat n tastaturi i echipamente electrocasnice.
In anul 1972 Intel a realizat microprocesorul de 8 bii I-8008 ca o dezvoltare a
predecesorului su I-4040.
In anul 1973 Intel a scos pe piaa cel mai popular microprocesor cunoscut sub
denumirea de I-8080, avnd frecvena de lucru de 2 MHz. Tot n acel timp a aprut pe
piaa i microprocesorul firmei Motorola, M-6800 avnd performane asemntoare.
Circa 5 ani I-8080 a dominat piaa microprocesoarelor, aceasta i pentru c Intel a
realizat o multitudine de circuite auxiliare i o bogat documentaie, care s permit o
uoar utilizare a acestuia.
Firma Zilog a realizat n 1975, cel mai performant microprocesor de 8 bii sub
numele Z-80 care a eliminat practic de pe piaa pe I-8080.
Ca rspuns la concuren Intel a scos pe piaa n anul 1978 ultimul produs al su
de 8 bii I-8085, fiind cel mai performant de acest tip, care se utilizeaz i astzi. Intel a
vndut peste 200 milioane de buci din produsul I-8085.
Incepnd din 1976 Intel a nceput producia de microprocesoare de 16 bii, primul
fiind I-8086. Acesta avea magistrala de date intern i extern de 16 bii, spaiul de
memorie de 1Moctet i o vitez de 2.5 milioane operaii/secund.
A fost realizat i varianta I-8088 la care magistrala de date extern era de 8 bii, ca o
tranziie de la microprocesoare de 8 bii la cele de 16 bii. In anii urmtori Intel a
perfecionat microprocesorul de 16 bii mrind spaiul de memorie i viteza de calcul.
A aprut varianta I-80186 care nu s-a impus pe pia.
Anul 1983 a constitut lansarea produsului I-80286 avnd frecvena de lucru de 8
MHz i o capacitate de memorie de 16 Mocteti, fiind ultimul produs de 16 bii.
In 1986 a aprut primul microprocesor de 32 de bii I-80386 avnd spaiul de
memorie de 4Goctei. Acest microprocesor a fost perfecionat, fiind dotat cu o memorie
intern cache, s-a integrat i coprocesorul matematic, a fost denumit I-80486 i a fost
lansat pe piaa n anul 1989.

In continuare s-a mers pe creterea vitezei de calcul prin mrirea frecvenei de clock
i perfecionarea structurii interne, n scopul procesrilor paralele.
Dac primele variante I-80486 aveau frecvene de 33 MHz, ulterior s-a ajuns la 133
MHz, 266 MHz, etc. In afara de Intel i ali productori au realizat microprocesoare
compatibile I-80486.
n anul 1993 Intel a realizat noua generaie de microprocesoare pe care a brevetat-o
cu numele Pentium n scopul protejrii mpotriva producatorilor neautorizai. Alte firme
au dezvoltat productia de microprocesoare producnd variantele 80586, 80686 cu
frecvene de clock de pn la 200 MHz.
Din 1997 Intel a produs Pentium II cu frecvene de clock de 233, 266, 300 MHz. etc
iar n anii urmtori se ateapt realizarea microprocesorului de 1GHz.
Toate aceste microprocesoare au contribuit la perfecionarea n ritm alert a
microcalculatoarelor i reducerea preului lor de pia devenind astfel accesibile unui
public larg.
Epoca Microsoft (1976- ...)
In paralel cu dezvoltarea prii de hardware s-a perfecionat partea de software.
Elaborarea sistemului de operare pentru microcalculatoarele, a fost realizat de firma
Microsoft, la solicitarea firmei IBM. Aceasta a ales varianta unui sistem de operare pe
disc magnetic (DOS) realiznd cel mai popular sistem de operare MS-DOS (Microsoft
Disk Operating System).
Ulterior Microsoft a realizat interfaa grafic Windows 3.1 care a fost dezvoltat
devenind un sistem de operare foarte performant, lansat n 1995 la aniversarea sa de 20
de ani i a 99 de ani a firmei IBM, sub numele Windows-95.
In continuare Microsoft a realizat cel mai performant sistem de operare pentru
microcalculatoare independente s-au lucrnd n reea, Windows-NT (1997).
Necesitatea limbajului de asamblare
Pentru a avea acces la resursele calculatorului trebuie scrise programe n limbaje
recunoscute de microcalculator. Orice limbaj este tradus n codul intern, denumit
limbajul intern al microprocesorului de ctre compilatoare, translatoare sau asambloare.
Fiecare instruciune pentru a fi executat trebuie adus la forma unei succesiuni de
cifre binare (cod binar). Instruciunile scrise n cod binar numit cod-intern sau cod-main
nu se utilizeaz n practic. Reprezentarea acestor instruciuni n forma hxazecimal cu 2
caractere pentru fiecare octet se numete cod-hexa i este folosit de ctre asambloare.
Reprezentarea codurilor instruciunilor sub form mnemonic, n care fiecare
instruciune este ataat unui cuvnt sau unei prescurtri de cuvnt din englez, constituie
limbajul de asamblare.
Programarea n limbaj de asamblare are urmatoarele avantaje:
Limbajul de asamblare este cel mai apropiat limbaj de resursele hardware ale
microcalculatorului, fiind foarte potrivit pentru accesul la acestea.
Limbajul de asamblare asigur viteza maxim de execuie.
Asigur portabilitate maxim, poate fi executat direct sub sistemul de operare.
Se pot realiza uor programe de lucru n timp real pentru informatica industrial.
Se pot realiza rutine sau subrutine pentru cooperarea cu alte limbaje.
Se pot realiza interfee soft, drivere, pentru conectarea unor echipamente
standard sau nonstandard la microcalculator.
Limbajul de asambalare are i o puternic latur formativ pentru profesioniti,
constituind puntea de legatur ntre hardware i software pe care se sprijin
utilizarea n continuare a microcalculatorului la ntreaga sa capacitate.

1.2. STRUCTURA INTERNA A UNUI MICROCALCULATOR


Dac ne referim la structura intern a unui microcalculator din punctul de vedere al
programatorului, atunci aceasta se poate reduce la 4 blocuri funcionale: memoria,
microprocesorul ,dispozitive de intrare/ieire i magistrala (fig.1.1.). Magistrala (M) a
microcalculatorului asigur conectarea intre ele a componentelor sale.
MEMORIA

MICROPROCESOR
M

I-80X86
PENTIUM
PENTIUM II etc

ROM
RAM

DISPOZITIVE

I/O

TASTATURA, DISPLAY
PORT SERIAL, PARALEL
IMPRIMANTA, CD-ROM
FLOPY DISK, HARD DISK
MOUSE, etc

Fig. 1.1 Schema bloc a unui microcalculator

Memoria
Aceasta conine doua pri: memoria fixa nevolatil care poate fi doar citit denumit
ROM i n care se pstreaz programele de baz pentru acces la intrri si ieiri - BIOS i
memoria care poate fi scris i citit n mod aleatoriu denumit RAM, n care se ruleaz
programele de aplicaie.
Primul calculator produs de IBM a fost calculatorul personal IBM-PC/XT cu
microprocesorul I-8088, avnd capacitatea memoriei de 1Moctet. Toate variantele
urmtoare au pstrat, pentru compatibilitate, mprirea memoriei ca i la IBM-PC /XT.
Spaiul de 1Moctet a fost mprit n 2 blocuri: primul bloc avnd capacitatea de 640
koctei n care se ruleaz n principal programele utilizator, denumit zona de programe
TPA (Transient Program Area) i un bloc de 360 koctei n care se afl n principal
elementele de baz ale sistemului de operare, denumit zona de memorie sistem SMA
(System Memory Area). Dezvoltarea microcalculatoarelor a extins spaiul de memorie
pn la 4 Goctei. Memoria peste aceea de 1Moctet se numete zona de memorie extins
EMA (Extendet Memory Area). Primele dou zone se subdivid conform (fig.1.2.).
9FFFF
9FFF0
9FFEF
08E30
08E2F
08490
0848F
02530
0252F
01160
0115F
00700
006FF
00500
004FF
00400
003FF
00000

MSDOS VECTORS
FREE TPA FOR
USER PROGRAMS
COMMAND.COM

EMA
4G

DRIVERS

IO.SYS PROGRAMS
1M
DOS COMUNICATIONS
BIOS COMUNICATIONS
INTRERUPT VECTORS

SMA
360kocteti

BIOS ROM
BASIC ROM
FREE AREA
EXPANDED
MEMORY

4Gocteti
-----------1Moctet

MS DOS PROGRAM

FFFFF
F0000
EFFFF
E0000
DFFFF

DFFFF
C8000
C7FFF
C0000
BFFFF

TPA
640kocteti

HD CONTROL ROM
VIDEO BIOS ROM

VIDEO RAM

A0000

Fig. 1.2. Partajarea memoriei unui microcalculator

Zona de memorie TPA este partajat astfel: n primul koctet se afl vectorii de
ntrerupere, apoi urmeaz zonele de comunicaie cu programele BIOS i DOS i
programele pentru intrri/ieiri i sistemul de operare MS-DOS precum i o serie de
drivere soft pentru periferice. Ultimii 16 octei ai acestei zone sunt rezervai pentru
sistemul de operare.
Rmne o zon liber de circa 600 koctei la dispoziia utilizatorului pentru diverse
programe. Aceasta este zona liber TPA, avnd capacitatea de circa 9 segmente a cte 64
koctei, n care se ncarc i se execut programele utilizator.
Zona SMA conine la nceput memoria ecranului (video), apoi programele speciale
din ROM pentru ecran i n partea de sus este rezervat un segment pentru interpretorul
limbajului BASIC (practic nu se mai folosee astzi).
In zona SMA se afl circa 64 koctei liberi rezervai unor dezvoltri ulterioare, care
pot fi folosii de ctre utilizator, numit memoria expandat (expanded memory).
Dispozitivele de intrare/ieire
Exista o mare varietate de dispozitive I/O dintre care tastatura, terminalul video,
unitile de discuri magnetice, porturile seriale i paralele sunt obligatorii.
Dispozitivele I/O sunt accesate prin intermediul unor adrese. Exist posibilitatea
alocrii unui numar total de 64 koctei de adrese n domeniul 0000...FFFF, numit spaiul
I/O, ns numai primul koctet este folosit. Distribuia adreselor mai importante n primul
koctet este prezentata n fig.1.3.
Cum se vede n figura alaturat, fiecrui
dispozitiv fizic i s-au ataat mai multe adrese,
03FF
COM1
03F8
ncepnd cu adresa initiala 0000h i sfrind
03F7
cu adresa final a primului koctet 03FFh.
FLOPPY DISK
03F0
La nceputul spaiului de I/O se afl
adresele DMA, urmeaz un spaiu rezervat
03DF
VIDEO ADAPTER
dup care se afl adresele controllerului de
03D0
ntreruperi, procedeul repetndu-se.
037F
Ultimul dispozitiv plasat n acest
LPT1
0378
spaiu este portul COM1. Aa cum am spus
portul DMA are alocate adresele de la 0000h
032F
HARD
DISK
la 000Fh, iar spaiul dintre adresele 0010h i
0320
001Fh este liber pentru utilizator.
02FF
Pentru portul imprimantei paralele
COM2
02F8
LPT1, s-au rezervat adresele dintre 378h,37Fh.
Ct privete adresele libere existente,
0063
PPI8255
utilizatorul le poate folosi pentru propriile sale
0060
dispozitive ce se vor ataa microcalculatorului.
0043
0040

TIMER

Microprocesorul
Reprezint
inima microcalculatorului,
0023
INTERRUPT
CONTROLLER
acesta execut operaii aritmetice, logice i de
0020
control sub coordonarea unui program,
000F
memora
care a fost depus n prealabil n memoria
DMA CONTROLLER
0000
microcalculatorului.
Micropocesorul executa trei mari grupe
Fig.1.3. Spatiul adreselor I/O
de operaii simple: de transfer ntre diverse
dispozitive, aritmetice i logice, precum i de
control al programului. Cu toate c operaiile executate de ctre microprocesor sunt
simple, prin descompunerea oricrei probleme n operaii elementare i execuia acestora
cu viteze de milioane de operaii/secunda, se poate rezolva orice problem.

Operaiile de transfer sunt de tipul MOV, IN, OUT, pentru a transfera date ntre
dispozitive interne respectiv externe. Operaiile aritmetice i logice sunt de tipul ADD,
SUB, MUL, DIV, AND, OR, XOR, necesare pentru adunare, scdere, multiplicare,
divizare, respectiv I, SAU, SAU-EXCLUSIV, NU. Operaiile de control al programului
sunt de tipul JMP, CALL, RET, INT i permit ramificarea programului prin salt, apelul
unui subprogram, revenire sau ntrerupere. Ramificarea se face n raport cu o anumit
condiie rezultat n urma calculelor efectuate de microprocesor.
Condiia rezultat se numete FLAG i este depus automat sub forma unui bit, n
registrul de condiii denumit FLAGS. Cele mai utilizate condiii FLAG sunt urmatoarele:
C=1/0 dup cum n urma calculelor a rezultat sau nu, un transfer sau mprumut.
P=1/0 dac n urma calculelor a rezultat sau nu, un numar par de "1 ".
Z=1/0 dac n urma calculelor a rezultat sau nu, un rezultat nul.
S=1/0 dac rezultatul are semnul minus sau plus.
O=1/0 dac n urma operaiilor aritmetice se depeste capacitatatea acumulatorului.
Magistrala
Conectarea diverselor dispozitive la microcalculator se face prin intermediul celor 3
magistrale ale microprocesorului: magistrala de date, de adrese i de control (adress bus,
data bus, control bus).

ADRESS BUS

I-80x86
[PENTIUM]

DATA BUS

MAGISTRALA M
MRDC
MWRC
IORDC
IOWRC

CONTROL BUS

ROM

RAM

TAS

DIS

IMP

Fig.1.4. Conectarea elementelor unui microcalculator prin intermediul magistralei

Magistrala de date este bidirecional avnd dimensiunea actual de 32 de bii


permind intrarea datelor n microprocesor (citire, read) sau ieira datelor din
microprocesor (scriere, write). Scrierea sau citirea datelor se poate face cu memoria sau
cu un dispozitiv I/O, lucru discriminat prin generarea semnalelor pe magistrala de control.
Magistrala de control are n principal cele 4 semnale de citire sau scriere a memoriei
denumite MRDC, MWRC, de citire sau scriere a unui dispozitiv I/O, notate IORDC,
IOWRC i sunt active pe semnal logic zero.
Magistrala de adrese actual are dimensiunea de 32 de bii pentru a putea adresa un
spaiu de memorie de pn la 232 =4Goctei i un spaiu de adrese I/O de pn la 64
koctei. In raport cu operaia care se face, dispozitivele trebuie conectate obligatoriu la
magistralele de date i adrese i la semnalele de control corespunzatoare.
Dac microcalculatorul are memorii ROM, RAM, tastatura (TAS), display (DIS) i o
imprimant (IMP), acestea vor fi conectate la magistrale conform fig.1.4.

Cele trei magistrale descrise anterior formeaz n principal magistrala


microcalculatorului i este denumit magistrala I/O.
Aceasta a fost standardizat pentru a se asigura compatibilitatea cu dispozitivele
produse de ctre diveri productori i anume:
ISA (Industry Standard Architecture), primul standard IBM n 1982.
MCA (Micro Channel Architecture), necompatibil cu ISA, standard IBM n 1987.
EISA (Extended Industry Standard Architecture), standard comun fr IBM n 1988.
PCI (Peripheral Component Interconnect bus), standard comun cu IBM n 1992.
PCMCIA (Personal Computer Memory Card International Association), la LAPTOP.
Actual se folosete magistrala de tip PCI care a fost perfecionat i a devenit un
standard unanim acceptat de ctre productorii de microcalculatoare.
1.3. ARHITECTURA MICROPROCESOARELOR I-80X86
Pentru a putea scrie un program n limbaj de asamblare trebuie s cunoatem
arhitectura intern a microprocesoarelor din familia I-80x86, din punctul de vedere al
programatorului.
Ne intereseaz regitrii, indicatorul de condiii i modul de formare a adresei fizice n
vederea accesului la memorie.
De la primul microprocesor al familiei I-8086 de 16 bii i pn actual la
microprocesoarele Pentium de 32 bii, perfecionarea s-a fcut pstrnd nucleul de baz al
microprocesorului iniial. Aceasta pentru compatibilitate de jos n sus, programele
realizate pe variante inferioare s poat fi rulate pe calculatoare mai performante.
Toate microprocesoarele au 14 regitrii, cele de 32 de bii au n plus doi regitrii,
formnd astfel 16 n total. Pentru microprocesoarele de 32 de bii registrele au fost
dublate la capacitatea de 32 de bii, numindu-se registre extinse.
32 BITI
16 BITI

16 BITI

8BITI

EAX

AH

AX

AL

CS

EBX

BH

BX

BL

DS

ECX

CH

CX

CL

ES

EDX

DH

DX

DL

SS

EBP

BP

FS

EDI

DI

GS

ESI

SI

ESP

SP

EIP

IP

EFLAGS

FLAGS

Fig.1.5. Configuraia regitrilor pentru microprocesoarele familiei I-80x86

In fig.1.5. se prezint configuraia regitrilor pentru toate variantele de


microprocesoare din familia 80X86.

Microprocesorul are 7 regitri de uz general de 16 bii notai AX, BX, CX, DX, BP,
DI, SI, iar primii 4 dintre acetia pot fi mprii fiecare n cte 2 regitrii de 8 bii
denumii regitri L respectiv H.. Regitrii au denumiri n raport cu funciunile pe care le
ndeplinesc n procesul de calcul.
AX=AH+AL este registrul acumulator, el are faciliti suplimentare de calcul.
BX=BH+BL este registrul index de baz i se folosete pentru adresarea memoriei.
CX=CH+CL este registrul contor utilizat n aceast calitate de anumite instruciuni.
DX=DH+DL este registrul de date utilizat n operaii de multiplicare i divizare.
BP este registrul pointer de baz folosit pentru adresarea memoriei i a stivei.
DI este registrul index-destinaie, pentru adresarea destinaiei la transferul irurilor.
SI este registrul index-surs, pentru adresarea sursei la transferul irurilor.
Microprocesorul dispune de trei regitri speciali de 16 bii notai SP, IP, FLAGS.
SP este registrul indicator de stiv (stack pointer).
IP este registrul indicator a urmtoarei instruciuni care va fi executat.
FLAGS este registrul de condiii rezultate n urma execuiei unor instruciuni.
Registrele de mai sus au capacitatea extins la 32 de bii n cazul microprocesoarelor
evoluate i se noteaz EAX, EBX, ECX, EDX, EBP, EDI, ESI, ESP, EIP, EFLAGS.
Registrul de condiii FLAGS are configuraia din fig.1.6. iar n cazul
microprocesoarelor de 32 bii registrul EFLAGS mai contine 3 indicatori plasai n
poziiile 16, 17, 18 notai RF, VM, AC.
15

14

13

12

11

10

NT

IOP
1

IOP
0

7
S

6
Z

4
A

2
P

0
C

Fig.1.6. Configuraia registrului FLAGS

Semnificaia biilor din registrul FLAGS este urmtoarea:


C (carry)=1 indic prezena unui transfer sau mprumut la adunare sau scdere.
P (Parity)=1 indic prezena unui rezultat cu numr par de 1 n urma calculelor.
A (Auxiliar Carry)=1 are aceeai semnificaie ca i C ns pentru biii 3, 4 din octet.
Z (Zero)=1 indic un rezultat nul n urma operaiilor aritmetice sau logice.
T (Trap)=1 asigur intrarea procesorului n regim de test.
I (Interrupt)=1 indic pregtirea microprocesorului pentru lucrul n ntrerupere.
D (Direction)=1/0 asigur decrementul /incrementul automat al regitrilor DI, SI.
O (Overflow)=1 indic depirea capacitii registrului n cazul operaiilor aritmetice.
IOP0,1 ( Input/Output privilege) sunt doi bii care stabilesc nivelul de prioritate I/O.
NT (Nested Task)=1 indic execuia unui program coninut n altul (cuibrit).
In cazul microprocesoarelor de 32 bii registrul EFLAGS mai conine indicatorii:
RF (Resume)=1 indic terminarea execuiei unei instruciuni.
VM (Virtual Mode)=1 indic lucrul n mod virtual la programarea n mod protejat.
AC (Alignment Chec)=1 folosit la testarea alinierii cuvintelor de mai muli octei.
Indicatorii de condiii (FLAGS) C, P, A, S, Z, O se numesc indicatori de tip
aritmetic iar T, I, D se numesc indicatori de control.
Microprocesorul dispune de patru registre de segment de 16 bii notate CS, DS, ES,
SS iar n cazul microprocesoarelor de 32 de bii se mai adaug nc dou registre notate
FS, GS. Aceste ultime dou registre nu au o denumire special, aa cum au toate celelalte.
CS este registrul cod-segment, de selecie a memoriei unde se depune programul.
DS este registrul data-segment, de slecie a memoriei unde se depun datele.
ES este registrul extra-segment, suplimentar, folosit la lucrul cu iruri de caractere.
SS este registrul stack-segment, care definete zona de memorie unde ncepe stiva.
FS, GS sunt registre de segment existente numai la microprocesoarele de 32 bii.

1.4. ADRESAREA MEMORIEI IN MOD REAL


Microcalculatoarele dispun de un spaiu de memorie foarte mare cuprins ntre
1Moctet i 4 Goctei. Chiar i numai pentru cazul cel mai simplu cnd se dispune de 1
Moctet de memorie (16 segmente de 64 koctei fiecare), programatorul dispune de 9
segmente de memorie n zona TPA i de nc 1 segment n zona de memorie expandat,
ceea ce necesit o gestionare corespunztoare a locaiilor de memorie.
Cel mai simplu mod de gestionare a memoriei const n adresarea acesteia folosind
registrele de segment. Acest mod de lucru cu memoria se numete adresare n mod real
sau adresare n mod vizibil, deoarece programatorul tie poziia fiecrui segment de
memorie utilizat (este vizibil).
Pentru a adresa locaii de memorie de pn la 1 Moctet adresele au 20 bii i se scriu
cu 5 cifre hexazecimale. Registrele de 16 bii au capacitatea doar de 4 cifre hexa. Se
folosesc n acest caz dou registre, unul pentru a stabili nceputul segmentului, acesta este
un registru de segment i al doilea un registru general pentru a adresa locaiile de
memorie din interiorul acelui segment (offset sau deplasament).
Calculul adresei fizice se face adunnd coninutul registrului segment deplasat spre
stnga cu 4 poziii binare (o cifra hexa), la coninutul registrului general care adreseaz
locaiile din interiorul segmentului. Altfel spus se adun segmentul deplasat la stnga cu o
cifr hexa, la offset. Acest lucru se poate reprezenta ca n fig.1.7.
19

2 1 0
A D R E S A F I Z I C A 20 B I T I

19

4 3 2 1 0
SEGMENT DE 16 BITI

4 BITI 0

15

2 1 0
OFFSET 16 BITI

Fig. 1.7. Principiul adresrii in mod real

Prin deplasarea spre stnga a adresei de segment, ultimii 4 bii devin zero, ceea ce
nseamn c segmentele sunt distanate ntre ele cu minimum 24=16 octei. Aceast
distan se numete paragraf. Formarea adresei fizice se scrie astfel:
ADRESA FIZICA = SEGMENT : OFFSET sau
(1.1)
ADRESA FIZICA = 10h * SEGMENT + OFFSET
(1.2)
(1.3)
CS : BX = 10h * CS + BX
DS : BP = 10h * DS + DX
(1.4)
1000 : 2000 = 10000 + 2000 = 12000
(1.5)
1001 : 2000 = 10010 + 2000 = 12010
(1.6)
Relaia (1.2) reprezint expresia de calcul a formei (1.1), iar relaiile (1.3) i (1.4)
sunt cazuri particulare de adresare a unei zone de memorie pentru cod, respectiv pentru o
zon de date. Se remarc folosirea adecvat a regitrilor de segment CS i DS precum i
cte un registru general BX i DX.
Adresarea se poate reprezenta i sub form direct ca n relaiile (1.5), (1.6) n care se
calculeaz efectiv adresele fizice plecnd de la adresele de segment 1000 i 1001 cu
acelai offset 2000. Cu toate c segmentele sunt unul dup altul adresele fizice de nceput
sunt distanate cu 10h adic 16 octei ( 1 paragraf).
Mai jos se prezint combinaii de registre din oficiu respectiv pentru: calculul
adresei fizice a urmtoarei instruciuni din program, a adresei fizice a segmentului de
date, a adresei fizice a vrfului stivei i a adresei fizice a destinaiei la transferul irurilor.
CS : IP
DS : BX, DS : DI, DS : SI
SS : SP, SS : BP
ES : DI

De precizat c segmentele (64 koctei) se pot suprapune dac nu se folosete ntreaga


lor lungime, fr riscul unor erori. In continuare vom considera un caz concret.
S presupunem c trebuie s rulm un
program care are lungimea codului de maxim
43000
48 koctei, dimensiunea datelor de maxim 32
koctei, stiva de maxim 24 koctei i o zon de
2D000
text (iruri) de maxim 16 koctei. Vom alege
zona TPA pentru rularea programului care de la
27000
adresa 00000 pn la adresa 8F00h este ocupat
ES
25000
cu diverse drivere ale sistemului de operare,
16k
dup care pn la adresa 9FFF0h este liber.
23000
Vom alege pentru segmentul de cod adresa
SS
9000h, din care este folosit numai 48K deci
24k
pn la adresa 15000h. De la aceast adresa
1D000
poate s nceap urmtorul segment (fig.1.8.).
Urmtorul este segmentul de date care are
DS
19000
lungimea de 32K pn la adresa 1D000h, de
32k
unde poate s nceapa segmentul de stiva.
Acesta are lungimea de 24K i ine pn
15000
la adresa 23000h de unde poate ncepe
CS
segmentul de caractere sau de iruri.
48k
Segmentul de caractere are lungimea de
16K pn adresa 27000h. Toate cele 4
segmente vor fi adresate prin regitrii CS, DS,
09000
SS, ES prin depunerea n regitri de segment a
adresei de nceput astfel: CS=09000h,
Fig.1.8. Segmente suprapuse
DS=15000h, SS=1D000h, S=23000h.
Lucrul cu segmente de memorie aduce dup sine avantajul rulrii unui program n
orice zona de memorie, acolo unde este memoria liber, fiind relocabil.
1.5. ADRESAREA MEMORIEI IN MOD PROTEJAT
Acest mod de adresare se utilizeaz n cazul prezenei memoriei extinse, peste
valoarea de 1Moctet. Aceast situaie este ntlnit actual aproape la toate
microcalculatoarele. In cazul memoriei extinse nu se poate aplica metoda adresrii n mod
real, deoarece adresele de memorie depesc 20 bii ajungnd pn la 32 de bii.
In acest caz se folosete o metod care permite selectarea unor segmente de memorie
de lungime aleas de ctre programator, folosind n acest sens dou elemente noi,
denumite selector i descriptor. Dup ce segmentul a fost selectat accesul la locaiile de
memorie se face tot prin offset, ca la adresarea n mod real. Adresarea prin intermediul
selectorului i descriptorului are calitatea c se asigur protecia la accesul utilizatorilor la
memorie i de aceea se numete adresare n mod protejat.
Selectorul
Cuvntul care se gsete ntr-un registru de segment, n cazul adresrii n mod
protejat, constituie un selector prin care se alege o tabel de descriere (descriptor) a
poziiei, lungimii i a proprietilor de acces ale segmentului.
Selectorul are dimensiunea de 16 bii, egal cu dimensiunea registrului de segment, primii
3 bii particularizeaz tipul de descriptor iar urmtorii 13 constituie 213 =8 koctei de
adrese de descriptori. Forma unui selector este prezentat n fig.1.9.

10

15

14

3
SELECTOR

13 BITI

TI

RPL1 RPL0

Fig.1.9. Structura unui selector

Cnd TI=0 avem descriptori globali, acesta este cazul normal, dac TI=1 avem
descriptori locali, folosii n aplicaii speciale.
Cei doi bii RPL0, RPL1 realizeaz prin combinaia lor 4 regimuri de privilegiere
referitor la accesul la segment. Nivelul maxim de privilegiere este 00 si minim 11.
Descriptorul
Cu ajutorul selectorului se pot alege 8k (8192) segmente de memorie. Fiecare
segment de memorie are un descriptor ce const dintr-o tabel coninnd 8 octei. Deci
totalitatea descriptorilor ocup 8 * 8K=64 koctei de memorie. Un descriptor definete
complet orice segment i are forma din fig.1.10.
B31 B30
P

B29

DPL

B28
S

B15 B14

B13

B12

L15

L13

L12

L14

B27 B26 D25 B24

AV

L19

ED/C

R/W

B23

B22

B21

B20

B19

B11 B10

B9

B8

B7

B6

B5

B4

B3

L11

L9

L8

L7

L6

L5

L4

L3

L10

L18

L17

L16

B18 B17 B16


B2
L2

B1 B0
L1

L0

Fig.1.10. Forma general a unui descriptor

Descriptorul are 32 de bii notati B0, B1, ..., B31 cu care se poate selecta baza adresei
segmentului (adresa de nceput) n domeniul 1 octet pn la 4 Goctei. Cei 20 de bii
notai cu L0, L1, ... , L19 constituie limita maxim a segmentului selectat. Dac bitul de
granulare G =0, atunci segmentele pot fi dimensionate de valori ntre 1 octet i 1 Moctet
iar dac G=1 atunci totul se multiplic cu 4k ceea ce permite dimensiuni de segmente
ntre 4koctei i 4 Goctei. Ceilalti bii se refer la modul de procesare al segmentului
astfel:
D=0/1 permite lucrul cu instruciuni de 16/32 bii
AV=0/1 informeaza sistemul de operare dac segmentul nu este/este disponibil.
In linia a treia din stnga descriptorului se afl octetul drepturilor de acces la
segment. Cei 8 bii au urmtoarea semnificaie:
P=0/1 baza i limita segmentului nu se folosesc/se folosesc.
DPL 2 bii ai descriptorului nivelului de privilegiere, ca i biii RPL ai selectorului.
S=0/1 informeaz sistemul de operare c segmentul este de tip sistem/cod sau date.
E=0/1 informeaz sistemul de operare c segmentul este de tip date/cod.
Dac bitul E=0 fiind de tip date, atunci urmtorii bii au semnificaia:
ED=0/1 segmentul este de date i crete/segmentul este de stiv i scade.
W=0/1 datele nu pot fi scrise/pot fi scrise n segment.
Dac bitul E=1 fiind de tip cod, atunci urmtorii bii au semnificaia:
C=0/1 se ignor/sau nu nivelul de privilegiere.
R=0/1 segmentul de cod nu poate/poate fi citit.
A=0/1 segmentul nu este/este accesibil.

11

Pentru lucrul n mod protejat, dac se cunoate tabela descriptorilor, atunci alegerea
unui anumit descriptor se face automat de ctre program, utilizatorul trebuie doar s
furnizeze adresa acestuia n registrul de cod (selector). Dac nu se cunoate tabela
descriptorilor programul aloc n mod automat segmentele i se spune c este un program
cu registre invizibile. De asemenea se poate lucra n mod real dac se alege bitul P=0.
De exemplu descriptorul-1 din tabela descriptorilor globali are cei 8 octei: 00h, 00h,
80h, 10h, 00h, 00h, 00h, ffh. Vom obine urmtorul descriptor, sub forma binar
(fig.1.11.):
0
1
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
0

0
0
0
1

0
0
0
1

0
0
0
1

0
1
0
1

0
0
0
1

0
0
0
1

0
0
0
1

0
0
0
1

Fig.1.11. Structura descriptorului-1


Dac analizm acest descriptor constatm urmtoarele:

Segmentul are baza B31,...,B0=00100000h, limita este L19,...,L0=000FFh, ncepe la


adresa 100000h, are lungimea de 100h (L+1), se termin la adresa 100100h, are
granulare zero, lucreaz cu instruciuni pe 16 bii i nu este disponibil. Este un segment de
date sistem care nu poate fi scris, nu este accesibil i are maximum de privilegiu. Acesta
este descriptorul-1, are TI=0, RPL0=0, RPL1=1 i se adreseaz prin DS=0008.
1.6. FORMATUL DATELOR IN MICROCALCULATOR
Microprocesorul lucreaz cu date n form binar ns n procesul de programare se
folosesc i alte formate i anume: hexazecimal, INTEL-HEX, ASCII, BCD, ntregi, reale.
Date hexazecimale i formatul INTEL-HEX
Intel a introdus forma hexazecimala ca o alternativ mai concentrat a reprezentrii
binare. In acest sens fiecrei tetrade de cifre binare i se ataeaz o cifr hexa (fig.1.12).
HEXA

0
0
0
BINAR
0
0

1
0
0
0
1

2
0
0
1
0

3
0
0
1
1

4
0
1
0
0

5
0
1
0
1

6
0
1
1
0

7
0
1
1
1

8
1
0
0
0

9
1
0
0
1

A
1
0
1
0

B
1
0
1
1

C
1
1
0
0

D
1
1
0
1

E
1
1
1
0

F
1
1
1
1

Fig.1.12. Corespondena binar-hexa

Astfel de exemplu numrul de 16 bii 0100110001110101 se scrie 4C75h n hexa.


Formatul INTEL-HEX se folosete la nregistrarea datelor pe suport magnetic n
grupuri de cte 16 octei hexa. Fiecare grup are n stnga un identificator ce const n
adresa de nceput a grupului i un cod de identificare a corectitudinii biilor din grup.
Date ASCII
Denumirea ASCII vine de la iniialele American Standard Code for Information
Interchange i este cel mai folosit cod pentru reprezentarea caracterelor alfanumerice.
Codul se folosete la transmisia serial a informaiei, la comunicaia ntre calculator i
imprimant, la unele tastaturi etc.

12

Codul ASCII standard este reprezentat pe 7 bii, bitul 8 fiind folosit pentru controlul
paritii la comunicaii seriale. Cu 7 bii se pot codifica 128 de caractere reprezentnd
literele mari i mici ale alfabetului englez, semnele de punctuaie, semnele aritmetice i
logice i unele simboluri de control al imprimantei. Cel de al 8-lea bit se mai poate folosi
pentru a dubla numrul de caractere la 256, obinnd codul ASCII extins.

0
1
2
3
4
5
6
7

nul
dle
sp

soh
dc1

stx
dc2

etx
dc3

eot
dc4

enq
nak

ack
syn

bel
etb

bs
can

!
1
A
Q
a
q

"
2
B
R
b
r

#
3
C
S
c
s

$
4
D
T
d
t

%
5
E
U
e
u

&
6
F
V
f
v

'
7
G
W
g
w

(
8
H
X
h
x

0
@
P
'
p

9
ht

A
lf

B
vt

C
ff

D
cr

E
so

em

sub

esc

fs

gs

rs

}
9
I
Y
i
y

*
:
J
Z
j
z

+
;
K
[
k
{

,
<
L
\
l
|

=
M
]
m
}

.
>
N
^
n
~

F
si
us
/
?
O
_
o

Fig. 1.13. Codul ASCII standard

In fig.1.13. se prezint n forma tabelar codul ASCII. Pentru a afla codul unui
caracter, formm numarul hexa din cele dou cifre aflate la intersecia liniei i coloanei
respective. De exemplu CR (cariage return) are codul 0Dh iar LF (line feed) are codul 0A.
Cifrele zecimale ncep cu codul 30h i se termin la 39h, literele mari ale alfabetului
ncep cu 41h i se termin cu 5A iar cele mici ncep la 61h i se termin cu 7A, fiind
decalate fa de literele mari cu 20h.
Date BCD
Denumirea BCD provine de la prescurtarea Binary-Coded Decimal, adic cifrele
zecimale sunt codificate binar. Fiecare din cele 10 cifre binare 0, 1, 2, ..., 9 denumite
digii, sunt codificate cu o tetrad de numere binare, reprezentnd codul binar natural al
digitului respectiv. Vom avea corespondena: 0 =0000b, 1=0001b, ..., 9z =1001b. Celelalte
coduri binare care urmeaz: 1010, 1011, ..., 1111 nu sunt admise n BCD. Intruct un
octet are 8 bii nseamn c acesta poate stoca dou cifre BCD (2 digii). In acest caz se
spune c datele BCD au fost mpachetate. Dac fiecare digit este reprezentat ntr-un octet
se spune c datele BCD sunt nempachetate. De exemplu numrul BCD 93 se poate
reprezenta nempachetat sub forma 00001001, 00000011 sau mpachetat 10010011.
Date de tip ntreg
Lucrul cu date pe octei presupune cunoaterea tipului de date ce se stocheaz n
octet. Dac avem date de tip ntreg atunci pot fi pozitive sau negative, bitul cel mai
semnificativ va reprezenta bitul de semn. Dac acest bit este 0 numrul este pozitiv iar
dac este 1 numrul este negativ. In acest caz pe un octet se pot reprezenta numere
cuprinse ntre -128 i +127. In cazul c se reprezint ntregi far semn, atunci se vor
utiliza toi cei 8 bii ai octetului, permind stocarea de numere cuprinse ntre 0 i 255.
Reprezentarea numerelor negative se face n codul complementar fa de 2. Pentru a
determina codul complementar fa de 2 pentru un numr negativ, se determina mai nti
complementul numrului pozitiv (schimbnd n numr cifrele 0 cu 1 i invers), dup care
se adun la rezultat cifra 1. De exemplu codul complementar fa de 2 pentru -6 se obine
astfel:
6=00000110b=11111001c,
11111001+00000001=11111010=FAh.
Deci
reprezentarea numrului negativ -6 n codul complementar fa de 2 este FAh.
Se pot determina limitele de reprezentare a numerelor ntregi astfel:
-128=10000000=80h, -1=11111111=FFh, 0=00000000=00h, 127=01111111=7Fh.

13

In cazul n care avem numere de lungime 2 octei (cuvnt) sau de 4 octei (dublucuvnt), bitul cel mai din stnga (15 respectiv 31) va fi de semn, iar pentru reprezentarea
n cod complementar fa de 2 se procedeaz n acelai mod, calculele efectundu-se cu
ntregul cuvnt sau dublu-cuvnt. Intr-un cuvnt se pot reprezenta numere cu semn n
domeniul -215 , +215-1 iar ntr-un dublu cuvnt n domeniul -231 , +231-1.
Date de tip real
Numerele zecimale se mai numesc n tehnica de calcul, numere reale, reprezentarea lor se
face cu 2 componente, mrimea numrului (magnitudinea, mantisa ) i exponentul.
Aceast reprezentare se numete n virgul mobil i poate fi n simpl precizie sau n
dubl precizie. Indiferent de numr acesta se aduce la o mrime cuprins ntre 1 i 2
multiplicata cu o putere a lui 2 (normalizat). Exponentul poate fi pozitiv sau negativ.
Pentru reprezentarea numerelor reale se folosete standardul IEEE (Institut for
Electrical and Electronic Engineers) sau metoda BIAS. In simpl precizie numrul se
reprezint pe 4 octei adic 32 de bii iar n dubl precizie pe 8 octei adic 64 de bii.
In cazul reprezentrii n simpl precizie, la nceput numrul se normalizeaz. Pentru
aceasta numrul real scris sub forma binar, se deplaseaz spre stnga sau dreapta pn
ajunge la forma 1.xx...x *2n , unde exponentul poate fi pozitiv sau negativ. Deoarece
toate numerele ncep cu 1 aceast cifra nu se mai scrie. Numrul rmas dup ce s-a
eliminat 1 se reprezint ca numr fr semn n binar pe 23 de bii, ncepnd din stnga..
Exponentul se adun cu o constant 7Fh=127 numit BIAS, dup care se reprezint
pe 1 octet. In final se scrie numrul real n simpl precizie avnd n stnga bitul de semn
S, urmat de octetul exponent i de cei 23 bii de mrime, n total 32 de bii (fig.1.14.).
S

EXPONENT BIAS
8 BITI

MARIMEA
7 BITI

NUMARULUI
8 BITI

PE 23 DE BITI
8 BITI

Fig.1.14. Reprezentarea numerelor reale n simpl precizie

S considerm un exemplu de reprezentare a numrului real -2.5 n simpl precizie.


La nceput vom scrie numrul n binar:- 2.5=-2-1/2=-(10)-1*2-1= -(10.1) apoi l vom
normaliza -(10.1)= -(1.01)*21. Rezult bitul de semn S=1, exponentul 1 care se adun la
BIAS=7F i rezult 80h. Se elimin cifra 1 din magnitudinea 1.01 i rmne valoarea 01
care se va reprezenta pe 23 de bii. Acesta se poate scrie C0200000h (fig.1.15.).
1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Fig.1.15. Reprezentarea numrului -2.5 n simpl precizie

Reprezentarea n dubl precizie va avea 64 de bii i se face pe acelai principiu, cu


magnitudinea de 52 de bii, exponentul de 11 bii i un BIAS=3FFh (fig.1.16.).
S EXPONENT
11 BITI

MARIME
4 BITI

NUMAR
8 BITI

DUBLA
8 BITI

PRECIZIE
8 BITI

PE
8 BITI

52 DE
8 BITI

BITI
8 BITI

Fig.1.16. Reprezentarea numerelor reale n dubl precizie

S reprezentm numrul real 0.25 n dubl precizie. Se scrie n binar sub forma
0.25=1/4=1* 2 - 2=1.0 * 2- 2. Deci S=0, exponentul 3FF-2=3FD i mrimea 0. Numrul va fi
0 1111111101 0000 00000000 00000000 00000000 00000000 00000000 00000000.

14

1.7. PROBLEME
1.7.1. Caracterizai epocile mecanic, electric, electronic preciznd: perioada
istoric, calculatoarele folosite, inventatorii, principiul funcional, noutatea adus.. Dai
cteva exemple bazate pe principiile acestor dispozitive, care se mai folosesc actual.
1.7.2. Precizai pentru epocile microprocesoarelor i Microsoft: anul de nceput,
cauza saltului calitativ, evoluia microprocesoarelor i a prii de software, exemple de
microcalculatoare realizate pe baza celor de mai sus.
1.7.3. Explicai denumirile: octet, digit, cuvnt, dublu-cuvnt, zece-octei, koctet,
Moctet, Goctet, segment de memorie standard. Ce dimensiune au magistralele de adrese,
de date i spaiul de memorie la microprocesoarele Intel: 8086, 80286, 80386SX,
80486DX.
Definii noiunile: hardware, software, limbaj-main, limbaj de asamblare, sistem de
operare, BIOS, MS-DOS, WINDOWS. Care sunt avantajele limbajului de asamblare.
1.7.4. Un microcalculator are urmtoarele: memoria de 4Goctei, microprocesor I80386, tastatur, display, floppy disk, mouse. Realizai conexiunea pe magistrale a
acestor elemente. Ce dimensiuni au zonele de memorie TPA, SMA, EMA. Cte segmente
de memorie liber are la dispoziie utilizatorul.
1.7.5. Descriei registrele unui microprocesor modern. Considernd c o subrutin
execut operaia de scdere 3FC-3FF, s se determine cuvntul din registrul FLAGS.
1.7.6 Un microcalculator lucrnd n mod real, are adresa de nceput a zonei libere
TPA 10000h. Un program adun numerele 7 cu -10, apoi adun la rezultat cifra 3. Se
rezerv 1/2 koctei pentru cod n primul segment TPA, iar n continuare se declar
segmentul de date, care se suprapune peste segmentul de cod.
Reprezentai adresele de nceput i sfrit a segmentele de cod i date. Care va fi
coninutul regitrilor de segment pentru cod i date. Realizai schema logica de calcul,
preciznd la fiecare pas, valoarea indicatorilor FLAG-aritmetici.
1.7.7.
Registrele unui microcalculator au valorile: AX=3000h, BX=1000h,
CX=2000h, DX=3000h, BP=3200h, DI=2200h, SI=1002h, SP=3A00h, IP=A000h,
CS=1B00h, DS=1A00h, SS=2300h, ES=2400h.Gsii adresele fizice ale combinaiilor de
registre: CS:IP, CS:DX, DS:AX, DS:BX, DS:CX, DS:SI, SS:SP, SS:BP, ES:DI.
1.7.8. Ce inseamn adresarea memoriei n mod real respectiv protejat. Artai
structura selectorului i a descriptorului-4 global cu nivel-2 de privilegiere avnd
urmtorii octei: 00h, 50h, 93h, 40h, 00h, 00h, FFh, FFh. Determinai adresele iniiale i
finale i descriei caracteristicile de acces.
1.7.9. Codificai un descriptor pentru un segment de date cresctor, cuprins intre
adresele 03000000h, 03010000, disponibil, ce poate fi scris, cu G=1, la I-80286.
1.7.10. Explicai relaia ntre date sub form binar, hexazecimal i Intel-hex format.
Codificai n ASCII textul *Limbaj de asamblare MASM.EXE* , astfel inc acesta
s fie scris la imprimant ncepnd cu o linie nou. In ci octei va fi memorat.
1.7.11. Explicai codul BCD. Numerele 28h i 36h reprezint cte 2 digii BCD
mpachetai. Adunai cele 2 numere n hexa i facei corecia astfel nct rezultatul s fie
un numr BCD. Deducei algoritmul de adunare a dou cifre n BCD.
1.7.12. Convertii urmtoarele numere ntregi din zecimal n binar i hexa: -1, 127,
-128, -800, -120, -3212. Convertii numerele ntregi din hexa n zecimal: FEh, 7Ah, 84h .
1.7.13. Convertii primele 2 numere reale n fomat virgul mobil-simpla precizie
iar urmtoarele 2 n format virgul mobil-dubla precizie: 1.5, 100.25, -10.625, 0.125.
1.7.14. Facei conversia invers din format virgula mobil-simpl precizie n format
aritmetic-numere reale, pentru urmtoarele: 40 60 00 00h, BF 80 00 00h, 41 68 00 00h.
1.7.15. Facei conversia din format virgul mobil-dubl precizie n format aritmetic
numere reale, pentru urmtoarele: 7F A0 00 00 00 00 00 00h, C0 25 80 00 00 00 00 00h.

15

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