Sunteți pe pagina 1din 16

Introducere

Microprocesorul este o component care a revoluionat informatica.


El are o funcionare transparent (invizibil) pentru utilizatorul unui sistem
de calcul, deoarece ntre microprocesor i utilizator se afl de regul un
program special - sistemul de operare. Aplicaiile microprocesoarelor au
atins practic toate domeniile: tiinific, tehnic, educaional, economic,
financiar, social - politic i cultural.
Microprocesorul a aprut n 1971, istoria sa fiind tipic american. n
1968, doi cercettori, Robert N. Noyce i Gordon E. Moore, prsesc
societatea Fairchild pentru a fonda Intel. Ambiia lor era de a exploata
tehnologia LSI (Large Scale Integration) ce se ntea atunci. Primele
produse au fost circuite de memorie cu semiconductoare (inelele de ferit
dominau epoca). n 1969 primul circuit realizat a fost memoria bipolar
Schottky 3101, de 64 bii i n acelai an, memoria MOS 1101, de tip static
de 256 bii. Apoi n 1970 realizeaz memoria dinamic MOS 3101 de 1024
bii cu timp de acces de 300 ns.
n 1969, o societate japonez, astzi disprut, Busicom, cere firmei
Intel realizarea n producie de serie a unei familii de 5 circuite integrate
pentru calculatoare de birou performante. Inginerul Ted Hoff de la Intel a
schimbat proiectul. El a considerat prea complex i costisitor proiectul
iniial al firmei Busicom i a redus la patru numrul circuitelor prin
reducerea complexitii instruciunilor i introducerea unei memorii
complementare. Cele patru circuite erau: unitatea central (CPU), o
memorie ROM pentru programe de aplicaie, o memorie RAM pentru date
i un registru specializat n intrri-ieiri (I/O). Unitatea central s-a numit
Intel 4004 - primul microprocesor din lume. Cu cele 2300 tranzistoare MOS
i 60 000 operaii pe secund, Intel 4004 avea aproximativ aceeai putere
de calcul ca i calculatorul ENIAC - considerat a fi la originea informaticii.
Firma Busicom a fost convins cu greu s accepte noua formul, dar
n final a acceptat i n 1970 a fabricat i comercializat n jur de 100 000
de calculatoare.
Apariia primului microprocesor nu a constituit un eveniment deosebit
n lumea informatic. El aplica tehnologiile noi de integrare - foarte
cunoscute - pentru a realiza pe un singur "chip" schema de principiu a unui
calculator, care era de asemenea cunoscut.
Chiar firma Intel i punea problema reutilizrii noii serii de 4
circuite integrate; ideea a fost s utilizeze aceast serie ca "locomotiv"
pentru a vinde memorii. Intel a cumprat dreptul de comercializare a seriei
1
dar nu cu mare succes: preul de 30 - 40 $ pentru cteva circuite a fost
considerat de clieni prea ridicat.
n 1972 Intel lanseaz versiunea de 8 bii a procesorului, Intel 8008
care este bine primit pe pia. Procesarea datelor de 8 bii era foarte
convenabil pentru reprezentarea caracterelor alfanumerice.
Dezvoltnd conceptul de baz, Intel propune n 1974 microprocesorul
8080, care devine cu adevrat primul microprocesor de uz general din
lume. De 10 ori mai performant dect 8008, el execut 290.000 operaii pe
secund, poate adresa 64 ko de memorie, dispune de densitate de integrare
sporit. Este comercializat la preul de 360 $ n aprilie 1974.
Succesul de pia al lui Intel 8080 a trezit concurena: Motorola
prezint concurentul su M 6800 urmat de Z80 al firmei Zilog i de
produsul firmei MOS Technology, 6502 (unitatea central a lui Apple 2 i a
primelor microcalculatoare Commodore). Rspunsul din partea lui Intel a
fost procesorul 8085 care adaug lui 8080 caracteristici foarte interesante
i nc un avantaj important - o singur tensiune de alimentare de 5 V (
8080 necesit trei tensiuni de alimentare).
n 1976, Intel, care avea un proiect de microprocesor pe 32 bii (Intel
432), renun la acesta i dezvolt varianta pe 16 bii, 8086. Este o
extensie a arhitecturii devenite clasice a lui 8080. Programul de fabricaie
al lui 8086 este condus de un francez stabilit n Statele Unite, Jean - Claud
Cornet. Desenul lui 8086, pe hrtie, ocupa o suprafa de 10 metri pe 10
metri (100 m.p.). Este comercializat n 1978.
n 1979, Motorola prezint procesorul su de 16 bii, M 68000 .
Pentru Intel, istoria continu cu 8088, o variant de 8 bii a lui 8086,
ce va fi adoptat de IBM pentru primul su microcalculator PC-XT, cu
80186/188 ale crui aplicaii au rmas misterioase, cu 80286 adoptat de
IBM pentru microcalculatoarele PC-AT, apoi 386, 486 i Pentium.
Microprocesoarele au devenit nu numai o industrie complet prin ele
nsele dar au determinat o cretere spectaculoas a cererii de circuite
integrate diverse i n special de memorii. Ele sunt utilizate nu numai ca
uniti centrale n microcalculatoare dar i n calculatoarele mari, n care
numeroase uniti care funcioneaz n paralel, conin microprocesoare.
Dezvoltarea spectaculoas a microprocesoarelor a produs o enorm pia
de periferice, de programe (Software), de servicii etc.
Impactul microprocesoarelor poate fi comparat cu cel al
automobilelor. De exemplu, n 1995 s-au vndut n toat lumea circa 50
milioane de microcalculatoare contra 40 milioane de automobile. S-a
propus ca numrul de microprocesoare utilizate (pe locuitor) s constituie
un indicator al progresului tehnic pentru rile industrializate.
2
1 Reprezentarea informaiei n
sistemele numerice
Studiul microprocesoarelor impune referirea frecvent la sistemele de
numeraie ca urmare a reprezentrii informaiei. Sistemul de numeraie uzual
este cel zecimal, dar circuitele electronice numerice lucreaz n cel binar,
care utilizeaz doar dou simboluri pentru reprezentarea informaiei, 0 i 1.
Sistemul binar fiind incomod pentru utilizatorul uman, se utilizeaz ca
intermediar sistemul hexazecimal, cu 16 simboluri, conversiile binar-hexa i
hexa-binar fiind foarte simple.
Definiii
Referitor la reprezentarea binar, singura posibil n sistemele actuale
cu microprocesor, se utilizeaz urmtoarele noiuni:
-bit (Binary Digit, pe scurt b) pentru o cifr binar 0 sau 1;
-nibble (pe scurt n) pentru un ir de 4 bii;
-byte sau octet (pe scurt B) pentru un ir de 8 bii;
-word sau cuvnt (pe scurt w) pentru un ir de 16 bii;
-double word sau dublu cuvnt (pe scurt dw) pentru 32 bii;
n binar prefixul kilo este asociat cu 1024 = 2
10
; astfel:
1k = 1024 10 ; 1Mega = 1024 x 1024 10 ;
3

6
1Giga = 2
30
10 ; 1Tera = 2
40
10 ;
9

12
1.1 Sisteme de numeraie
Un sistem de numeraie este o mulime finit de simboluri - numite cifre
mpreun cu un set de reguli pentru reprezentarea numerelor; numrul
simbolurilor reprezint baza sistemului de numeraie.
De exemplu, Sistemul Roman are apte simboluri: I, V, X, L, C, D, M.
Fiecare cifr are o valoare numeric (pondere) 1, 5, 10, 50, 100, 500, 1000.
- numrul reprezentat se obine prin nsumarea ponderilor, dac sunt
descresctoare: MDLXX = 1000+500+50+10+10=1570;
- dac un simbol este urmat de altul, cu pondere mai mare, valoarea
numeric se obine prin diferen: MCM = 1000+(1000-100)=1900;
- un simbol se poate repeta consecutiv de cel mult 3 ori (cu excepia
simbolului M); astfel 40 se scrie corect XL i nu XXXX;
MDXXX=1530; MCMXCIX=1999; MMII = 2002;
Sistemul Roman este utilizat n prezent doar pentru numerale ordinale.
3
Sistemele uzuale sunt poziionale, adic ponderea unei cifre depinde de
locul pe care aceasta n ocup n irul de cifre al reprezentrii.
Fie un sistem de numeraie poziional i mulimea de simboluri
; S = {c
1
, c
2
, . . , c
B
}
un numr N (ntreg) se scrie n acest sistem astfel:
, N = c
i
1
c
i
2
. . . c
in
=

m=1
n
c
im
B
nm
= c
i
1
B
n1
+ c
i
2
B
n2
+ . . + c
i n
B
0
unde B este baza sistemului de numeraie (numrul de simboluri) iar indicii
sunt n domeniul 1, 2, 3, . . . , B.
Exemple:
1. n sistemul zecimal (baza B = 10), mulimea simbolurilor este
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
numrul 1987 se scrie:
1987 = 1 10
3
+ 9 10
2
+ 8 10
1
+ 7 10
0
2. n sistemul binar (baza B = 2), mulimea simbolurilor este S = {0, 1};
numrul 21 se scrie = 10101 = 1 2
4
+ 0 2
3
+ 1 2
2
+ 0 2
1
+ 1 2
0
16 + 0 + 4 + 0 + 1 = 21.
3. n sistemul hexazecimal (baza B = 16), mulimea simbolurilor este
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F};
numrul 1000 se scrie 3E8 = = 3 16
2
+ E 16
1
+ 8 16
0
768 + 224 + 8 = 1000.
1.1.1. Conversia unui numr dintr-o baz n alta
Este necesar adeseori ca un numr dat ntr-o baz de numeraie s fie
exprimat n alt baz de numeraie.
1. Conversia din baza 10 ntr-o baz B se poate face prin exprimarea
numrului sub form de polinom n "variabila" B:
. N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
n aceast exprimare a numrului N, coeficienii sunt a
0
, a
1
, . . . , a
n
chiar cifrele reprezentrii lui N n baza B, n aceast ordine.
Rezult urmtorul algoritm de conversie:
1. Se calculeaz , restul mpririi lui N prin B: ; a
n
N = Q B + a
n
; N = (a
0
B
n1
+ a
1
B
n2
+ . . . + a
n1) B + a
n
2.Se calculeaz , restul mpririi lui Q prin B: : a
n1
Q = Q
1
B + a
n1
3. Se repet pasul 2 cu fiecare ct, pn cnd se obine ctul = 0.
Tabelul 1
Zecimal (Z) Binar (B) ZCB (DCB) Octal (Q) Hexazecimal (H)
4
0 0 0 0 0 0 0 0
1 1 0 0 0 1 1 1
2 1 0 0 0 1 0 2 2
3 1 1 0 0 1 1 3 3
4 1 0 0 0 1 0 0 4 4
5 1 0 1 0 1 0 1 5 5
6 1 1 0 0 1 1 0 6 6
7 1 1 1 0 1 1 1 7 7
8 1 0 0 0 1 0 0 0 10 8
9 1 0 0 1 1 0 0 1 11 9
10 1 0 1 0 12 A
11 1 0 1 1 13 B
12 1 1 0 0 14 C
13 1 1 0 1 15 D
14 1 1 1 0 16 E
15 1 1 1 1 17 F
16 1 0 0 0 0 20 10
4. Resturile obinute, scrise de la stnga la dreapta ncepnd cu ultimul
rest este reprezentarea numrului N n baza B.
Exemplu: N = 37; B = 2;
se scrie succesiv: 37 = 18 x 2 + 1 ;
18 = 9 x 2 + 0 ;
9 = 4 x 2 + 1;
4 = 2 x 2 + 0 ;
2 = 1 x 2 + 0 ;
1 = 0 x 2 + 1 ;
punnd alturi resturile n ordinea invers obinerii lor, se obine: 100101;
37
10
= 1 2
5
+ 0 2
4
+ 0 2
3
+ 1 2
2
+ 0 2
1
+ 1 2
0
= 100101
2
5
n mod analog se face conversia din baza 10 n orice baz; de exemplu
pentru conversia numrului 37 n hexazecimal, se scrie succesiv:
37 = 2 x 16 + 5; 2 = 0 x 16 + 2; se obine:
. 37
10
= 2 16
1
+ 5 16
0
= 25
16
n tabelul 1.1 sunt prezentate comparativ primele 16 numere naturale n
cele mai utilizate sisteme de numeraie: zecimal, binar, octal i hexazecimal.
Se poate observa n mod direct codificarea binar a celor 16 cifre
hexazecimale i de asemenea relaia dintre sistemul octal i binar.
2. Pentru conversia din hexazecimal n binar, fiecare cifr (hexa) se
nlocuiete prin codul su binar (4 cifre binare) conform tabelului 1.
Exemplu: 1 A B F 2 (H) = 0001 1010 1011 1111 0010 unde primele
trei zerouri pot fi omise.
3. Pentru conversia din binar n hexazecimal, se separ reprezentarea
binar n grupe de patru cifre de la dreapta spre stnga i apoi fiecare grup se
nlocuiete cu cifra hexazecimal corespunztoare din tabelul 1.
Exemplu: 10001011001010 = 10 0010 1100 1010 = 2 2 C A (H)
4. Pentru conversia dintr-o baz B n baza 10 se utilizeaz formula
de definiie a numrului n baza B:
,
N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
unde coeficienii sunt cifrele reprezentrii n baza B.
De exemplu, . 678
9
= 6 9
2
+ 7 9
1
+ 8 9
0
= 486 + 63 + 8 = 557
10
1.1.2. Reprezentarea numerelor fracionare
n acest caz reprezentarea are dou pri: partea ntreag i partea
fracionar:
, N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
B
0
+ a
n+1
B
1
+ a
n+2
B
2
+ . . . + a
n+m
B
m
unde puterile negative ale bazei marcheaz partea fraionar.
Astfel, numrul binar 101,111 se scrie:
101, 111 = 1 2
2
+ 0 2
1
+ 1 2
0
+ 1 2
1
+ 1 2
2
+ 1 2
3
= 5 + 0, 5 + 0, 25 + 0, 125;
aadar,
101,111
2
=5,875
10
.
Conversia unui numr fracionar subunitar din baza 10 n binar, se face
prin multiplicri succesive cu 2 i reinerea prii ntregi:
0,8125
10
=( ? )
2
;
0,8125x 2 = 1,6250; 0,625 x 2 = 1,250 ; 0,25 x 2 = 0,50 ; 0,5 x 2 = 1,0 ;
0,8125
10
= 0,1101
2
.
1.1.3. Reprezentarea numerelor pozitive i negative
n sistemul binar, prima i ultima cifr binar (bit) dintr-un ir au
denumiri specifice:
6
- primul bit (din extrema stng) este numit "cel mai semnificativ bit"
sau MSB (Most Significant Bit);
- ultimul bit (din extrema dreapt) este numit " cel mai puin
semnificativ bit" sau LSB ( Least Significant Bit).
MSB LSB
bit 0 bit 1 bit 2 bit n bit n-1 bit n-2
Fig. 1
. . . . . . . .
n sistemul binar existnd doar dou simboluri, pentru specificarea
semnului s-a introdus urmtoarea convenie: pentru "+" se utilizeaz "0" iar
pentru "-" se utilizeaz "1"; bitul de semn este MSB.
Exemplu: numrul negativ -15 se reprezint: 1 0 0 0 1 1 1 1
ceea ce se mai numete "octet cu semn"; n timp ce valoarea unui octet fr
semn este cuprins ntre 0 . . 255, cea a unui octet cu semn are domeniul
-127. . +127.
Numerele negative se pot reprezenta n trei moduri: ca numr binar cu
semn (exemplul de mai sus), n complement fa de 1 i n complement fa
de 2; ultimele dou s-au introdus pentru nlocuirea scderii cu adunarea.
Complementul fa de 1 al unui numr binar se obine prin
schimbarea fiecrui bit n bitul complementar: 1 devine 0 iar 0 devine 1.
Exemplu: 0100 1011 n compl. 1 devine 1011 0100.
Complementul fa de 2 al unui numr binar se obine din
complementul fa de 1 prin adunare cu unu. Este utilizat pentru nlocuirea
unei scderi, cu adunarea complementului fa de 2.
Exemplu:
0100 1011 n compl. 2 devine 1011 0100 + 1 = 1011 0101.
S verificm nlocuirea scderii cu adunarea complementului:
Fie N = 0101 0000
2
= 80
10
i M = 0100 1011
2
= 75
10
; atunci avem:
N - M = 0101 0000 - 0100 1011 = 0101 0000 + ( 80)
1011 0101 (compl.2) (-75)
0000 0101 = 5
10
( 5)
Adunarea i scderea vor da rezultate corecte dac nu apar depiri ale
limitelor de reprezentare (overflow - depirea numrului de bii ai
reprezentrii sau borrow - mprumut la rangul superior lui MSB).
n cazul nmulirii a dou numere n binar se consider c rezultatul va
avea o lungime dubl (numr de bii) fa de lungimea operanzilor.
n cazul mpririi se detecteaz tentativa de mprire prin zero care
poate produce rezultate eronate.
Toate microprocesoarele au n setul de instruciuni operaiile de
adunare i scdere dar nu toate au operaiile de nmulire i mprire.
Acestea pot fi implementate n programe utiliznd diferii algoritmi.
7
1.1.4. Reprezentarea numerelor n virgul fix i n virgul mobil
Reprezentarea n virgul fix utilizeaz un numr fix de bii pentru
partea ntreag i respectiv pentru cea fracionar. Pentru partea ntreag se
utilizeaz regula de reprezentarea a numerelor ntregi cu semn iar pentru cea
fracionar, regula de reprezentare a ntregilor fr semn. Se utilizeaz, de
regul, urmtoarele convenii:
- se rezerv un ir de bii pentru numrul total de cifre ale numrului
(inclusiv bitul de semn) - zona I;
- se rezerv un ir de bii pentru exprimarea numrului de cifre ale prii
fracionare - zona II;
- se reprezint numrul n binar prin irul de bii care rezult alturnd
zona I, zona II, partea ntreag, partea fracionar, fr nici o delimitare.
Reprezentarea n virgul fix se utilizeaz n unele sisteme de
conducere cu calculator a mainilor unelte (sisteme de poziionare) i n
domeniul financiar - contabil.
La acestea din urm, reprezentarea n virgul fix are avantajul c toate
puterile lui 10 care se ncadreaz n domeniul de valori stabilit, sunt
reprezentate exact. Pentru a reprezenta sume de bani, sunt suficiente dou
cifre dup virgul. La un bilan financiar, este esenial ca operaiile aritmetice
s se fac exact. Din aceste motive, n programele aplicative din domeniul
economic se utilizeaz reprezentarea numerelor fracionare n virgul fix.
Reprezentarea n virgul mobil are un format standard n funcie de
numrul de bii ai reprezentrii, fiind utilizate reprezentrile pe 32 de bii, 64
de bii i 80 de bii.
0 7 8 15 23 31
S S Exponent
Mantisa
Fig. 2 Reprezentarea n virgul mobil pe 32 de bii.
Pentru reprezentare, numrul se exprim ca produs dintre un numr
subunitar cu semn (mantisa) i o putere a lui 2 (exponent = ntreg cu semn):
N = M 2
Exp
, 2
1
M < 2
0
;
Mantisa M se numete normalizat dac prima cifr dup virgul este
diferit de zero.
Din figura 2 rezult c n reprezentarea n virgul mobil pe 32 de bii
se aloc 8 bii pentru exponent i 24 de bii pentru mantis; n acest caz,
domeniul de reprezentare este , fiind mult extins fa de (2
127
. . . 2
127
)
reprezentarea n virgul fix pe acelai numr de bii.
8
Exponentul se reprezint de obicei deplasat, n sensul c se memoreaz
un numr de forma E + K, unde K este o constant astfel aleas nct E + K
s fie totdeauna pozitiv. n acest mod nu mai este necesar bitul de semn, care
este totdeauna zero.
Prima cifr semnificativ a mantisei normalizate fiind 1, aceast cifr
nu se mai reprezint, ctigdu-se astfel un bit n spaiul de memorare (n
care se poate reprezenta bitul de semn).
Cea mai utilizat reprezentare standardizat este cea pe 32 de bii
numit n simpl precizie.
Exponentul are 8 bii i se reprezint intern adunat cu 127. Mantisa este
normalizat i nmulit cu 2, astfel nct condiia de normalizare devine:
. 1 M < 2
Bitul cel mai reprezentativ al mantisei nu se mai reprezint intern, fiind
totdeauna 1. Formula de reprezentare este dat de relaia:
, x = (1)
s
1 f
22
f
21
. . .f
1
f
0
2
e127
unde s este bitul de semn, e este exponentul mrit cu 127 iar cei 23 de bii
formeaz mantisa normalizat, notat de obicei cu f (de la flotant); cel de-al
24 -lea bit al mantisei, de valoare 1, nu se reprezint intern.
n tabloul urmtor sunt prezentai cei 4 octei n ordinea aezrii lor n
memorie, n sensul cresctor al adreselor.
Tab.2
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
e0 f22 f21 f20 f19 f18 f17 f16
s e7 e6 e5 e4 e3 e2 e1
Exponentul deplasat (mrit cu 127) ia valori ntre 1 i 254. Valoarea 0
este permis numai pentru reprezentarea valorii reale 0.0 (cnd s=0, f=0) iar
valoarea 255 (0FFH) se utilizeaz pentru cazuri de excepie, -INF i +INF
care sunt considerate depiri aritmetice.
- INF : e = 0FFH f = 7FFFFFH s = 1
+INF : e = 0FFH f = 7FFFFFH s = 0
Cel mai mic numr pozitiv reprezentabil este , caracterizat de 1.17 10
38
s=0, f=0, e=1.
Cel mai mare numr pozitiv reprezentabil are valoarea aproximativ
, caracterizat de s=0, f=7FFFFFH, e=0FEH. 3.4 10
38
Tab 3.:
Numr Reprezentare pe 32 de bii Obs.
0,0 00 00 00 00 s=0, f=0, e=0
9
1,0 00 00 80 3F s=0, f=0, e=7F H
2,0 00 00 00 40 s=0, f=0, e=80 H
0,5 00 00 00 3F s=0, f=0, e=7E H
-1,0 00 00 80 BF s=1, f=0, e=7F H
Observaii:
1. La aceeai mantis putem avea exponeni diferii, ceea ce nseamn
c virgula nu este fix ci se deplaseaz n funcie de mrimea i semnul
exponentului. De aceea numele reprezentrii este ''n virgul mobil'' sau ''n
virgul flotant''. Avantajul reprezentrii este domeniul de valori foarte extins
pentru aplicaii obinuite: . 10
38
10
38
2. Se reprezint exact numai numerele reale care se pot exprima ca
sume de puteri pozitive i negative ale lui 2; celelalte numere, ca de exemplu
0.3, 0.7, 0.001 etc., nu pot fi reprezentate exact n virgul mobil. De aceea,
acest sistem de reprezentare nu se utilizeaz n programele de aplicaii pentru
domeniile economico - financiare.
3. Calculele aritmetice sunt aproximative dar precizia este suficient de
bun pentru aplicaiile uzuale. n cazul reprezentrii n simpl precizie, pe 32
de bii, eroarea de reprezentare este de . 10
7
n cazul reprezentrii n dubl precizie, pe 64 de bii, mantisa este de
53 de bii iar exponentul de 11 bii (deplasat cu 1023).
Valoarea unui numr real n dubl precizie este dat de expresia:
, x = (1)
s
1 f
51
f
50
f
49
. . .f
1
f
0
2
e1023
unde s este bitul de semn, e este exponentul mrit cu 1023 iar cei 52 de bii
formeaz mantisa normalizat, notat cu f ; cel de-al 53 -lea bit al mantisei,
de valoare 1, nu se reprezint intern.
Structura celor 8 octei, aa cum sunt stocai n memorie, n ordinea
cresctoare a adreselor este dat n tabloul urmtor (4).
Tab. 4
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
f23 f22 f21 f20 f19 f18 f17 f16
f31 f30 f29 f28 f27 f26 f25 f24
f39 f38 f37 f36 f35 f34 f33 f32
f47 f46 f45 f44 f43 f42 f41 f40
e3 e2 e1 e0 f51 f50 f49 f48
s e10 e9 e8 e7 e6 e5 e4
Reprezentrile de 32 i 64 bii sunt formate normalizate recunoscute de
forurile tiinifice internaionale.
10
Reprezentarea n precizie extins, pe 80 de bii, are o mantis
normalizat de 64 de bii i un exponent de 15 bii (deplasat cu +16383).
Valoarea unui numr real n dubl precizie este dat de expresia:
, x = (1)
s
1 f
62
f
61
f
60
. . .f
1
f
0
2
e16383
unde s este bitul de semn, e este exponentul mrit cu 16383 iar cei 63 de bii
formeaz mantisa normalizat, notat cu f ; cel de-al 64 -lea bit al mantisei,
de valoare 1, se reprezint intern ca bit constant de valoare 1 (cu excepia
numrului 0.0 cnd i acest bit are valoarea 0.
Structura celor 10 octei, aa cum sunt stocai n memorie, n ordinea
cresctoare a adreselor este dat n tabloul urmtor (5).
Tab.5
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
f23 f22 f21 f20 f19 f18 f17 f16
f31 f30 f29 f28 f27 f26 f25 f24
f39 f38 f37 f36 f35 f34 f33 f32
f47 f46 f45 f44 f43 f42 f41 f40
f55 f54 f53 f52 f51 f50 f49 f48
1 f62 f61 f60 f59 f58 f57 f56
e7 e6 e5 e4 e3 e2 e1 e0
s e14 e13 e12 e11 e10 e9 e8
Familia de microprocesoare Intel 80x86 dispune de circuite specializate
(8087, 80287, 80387- coprocesoare aritmetice) pentru calcule n virgul
mobil, care utilizeaz toate cele trei forme de reprezentare.
Intel 486 i Pentium conin coprocesoare aritmetice n structura lor
intern. Limbajul de asamblare specific acestor procesoare dispune de
directive pentru definirea constantelor i variabilelor n toate cele trei forme
de reprezentare.
1.1.5. Coduri binare
Sistemul binar prezentat anterior este numit adesea binar natural. La
nceputurile informaticii toate programele i datele erau transformate n cod
binar de ctre utilizator i introduse n calculator sub aceast form. irurile
nesfrite de 0 i 1 n binar natural erau dificil de introdus, de verificat, de
corectat. Erorile erau inevitabile.
Pentru reducerea acestor dificulti, au fost inventate variante ale
codului binar mai uor de folosit i mai rezistente la erori. Un asemenea cod
11
este cel Zecimal Codat Binar sau BCD n englez (Binary Coded Decimal).
Prin utilizarea codului BCD o mare parte din problemele de conversie sunt
transferate calculatorului. Operaiile aritmetice efectuate n cod BCD necesit
corecii ale rezultatului ( exist instruciuni de corecie) pentru ca acesta s
corespund codului binar natural. n esen, regulile sunt:
- fiecare cifr zecimal este nlocuit de 4 bii = 1 nibble;
- se utilizeaz cifrele zecimale 0, 1, 2, . . ,9;
- valorile binare superioare lui 9 = 1001, sunt interzise.
Se utilizeaz dou forme ale codului BCD:
Tab. 6
Zecimal (Z) Binar (B) BCD
compactat
BCD
necompactat
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 1 0 0 0 0 0 0 0 1
2 1 0 0 0 1 0 0 0 0 0 0 0 1 0
3 1 1 0 0 1 1 0 0 0 0 0 0 1 1
4 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0
5 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1
6 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0
7 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1
8 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
9 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1
1. BCD compactat: 4 bii pentru o cifr zecimal = digit (4 bii / digit);
2. BCD extins sau necompactat: un octet pentru un digit (8 bii / digit); n
acest caz primii 4 bii ai octetului nu sunt utilizai (rmn 0).
Tab.7
Zecimal
(Z)
Binar (B) BCD (compactatat)
zeci uniti
BCD (necompactat)
zeci uniti
15 1111 0001 0101 000000001 00000101
31 100001 0011 0001 000000011 00000001
70 1000110 0111 0000 000000111 00000000
81 1010001 1000 0001 000001000 00000001
99 1100011 1001 1001 000001001 00001001
100 1100100 0001 0000 0000 00000001 00000000 00000000
1.1.6. Erori n BCD i corecii
12
n BCD compactat exist 6 combinaii de patru bii inexistente i anume
cele corespunztoare numerelor 10, 11, 12, 13, 14, 15, respectiv 1010, 1011,
1100, 1101, 1110, 1111. n cazul operaiilor cu numere n BCD apar erori
care trebuie corectate automat de ctre microprocesor.
Microprocesoarele dispun de instruciuni specifice care corecteaz
rezultatul n funcie de tipul operaiei, dar acestea sunt introduse n programe
de ctre programator.
1. Depirea capacitii digitului inferior:
Iat un prim caz de eroare. S presupunem c adunm n BCD 5+5;
rezultatul nu mai poate fi reprezentat n BCD pe un singur digit (cel inferior),
dar microprocesorul lucreaz de fapt numai n binar natural i rezultatul va fi:
0000 0101+
0000 0101
0000 1010 (codul 1010 nu exist n BCD)
Principiul coreciei este simplu: dac digitul inferior are o combinaie
inexistent, se adun aceast combinaie binar cu 0110 = 6 n zecimal, ceea
ce corespunde numrului de combinaii binare interzise:
0000 1010+
0000 0110
0001 0000 = 10 (5+5=10), deci corect.
2. Depirea capacitii digitului superior.
Problema este aceeai dar este afectat digitul superior. n acest caz
corecia se face adunnd 60 scris n BCD : 0110 0000.
Calculele se desfoar astfel:
0101 0000 + (50 n BCD)
0101 0000 (50 n BCD)
1010 0000 + (cod inexistent n BCD)
Corecie: 0110 0000 (se adun 60)
1 0000 0000 (se obine 100 n BCD, corect)
Se observ c s-a generat transport spre stnga care este memorat de un
indicator de transport.
3.Generarea unui transport ntre cei doi digii
n acest caz eroarea este produs prin propagarea unui bit de transport
de la digitul inferior spre cel superior. Acest tip de eroare apare, de exemplu,
la adunarea 8+9=17, n BCD. Corecia se face, din nou, prin adugarea
numrului 06 n BCD:
0000 1000+ (8 n BCD)
0000 1001 (9 n BCD)
0001 0001 + (11 n BCD - incorect)
Corecie: 0000 0110 (se adun 06 n BCD)
0001 0111 (rezultat corect: 17! n BCD)
13
n unitile aritmetice ale microprocesoarelor, transportul de la bitul 4
spre bitul 5 (ntre cei doi digii) este memorat de un indicator special numit
"de semitransport " iar valoarea sa determin operaia de corecie.
4. Transport generat de digitul superior
Dac digitul superior al sumei genereaz transport, corecia se face tot
prin adunarea cu 0110 la digitul superior:
1000 0000 + (80 n BCD)
1001 0000 (90 n BCD)
1 0001 0000 (110 n BCD, rezultat greit)
Corecie: 0110 0000 (se adun 60 n BCD)
1 0111 0000 (170 n BCD, rezultat corect)
5. Combinarea cazurilor 2 i 3
Dac se realizeaz simultan cazurile 2 i 3, corecia se face prin
adunarea lui 06 pentru cazul 3 i adunarea lui 60 pentru cazul 2; aadar, se
adun n total 66: 0101 1000+ (58 n BCD)
0101 1001 (59 n BCD)
1011 0001 (rezultat greit, czurile 2 i 4)
Corecie: 0110 0110 (se adun 66 n BCD)
1 0001 0111 (117 n BCD, rezultat corect)
Concluzie. Cnd se execut adunri n cod BCD, se apeleaz imediat
instruciuni de corecie a erorilor; acestea acioneaz n funcie de:
- indicatorul de transport (Carry Flag);
- indicatorul de semitransport (Auxiliary Carry) ;
- prezena codurilor inexistente n BCD;
n funcie de caz, corecia se face prin adugarea unuia din numerele:
00, 06, 60, 66. n limbaj de asamblare (Intel 8086, 80x86, . . . ) instruciunile
apelate sunt:
- DAA ( Decimal Adjust on Addition), ajustare zecimal la adunare;
- DAS ( Decimal Adjust on Substraction), ajustare zecimal la
scdere, caz n care erorile care apar sunt identice.
Corecia const n adugare de valori la adunare sau prin scderea
acelorai valori la scdere, acestea din urm fiind tot adunri dar n
complement fa de 2.
Detecia codurilor inexistente (n BCD), reprezentnd depiri de
capacitate se face astfel: pentru digitul superior, dac b
7
=1 i simultan b
5
=1
sau b
6
=1; pentru digitul inferior, dac b
3
=1 i simulta b
1
=1 sau b
2
=1;
(am considerat notarea biilor astfel: b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
)
14
Tab. 8 : Codul ASCII (American Standard Code f or Inf ormation Interchange)
0 32 ? 64 @ 96 ` 128

160

192

224

1 33 ! 65 A 97 a 129

161

193

225

2 L 34 " 66 B 98 b 130

162

194

226

3

35 # 67 C 99 c 131

163

195

227

4

36 $ 68 D 100 d 132

164

196

228

5

37 % 69 E 101 e 133

165

197

229

6

38 & 70 F 102 f 134

166

198

230

7 b 39 ' 71 G 103 g 135

167

199

231

8 T 40 ( 72 H 104 h 136

168

200

232

9 41 ) 73 I 105 i 137

169

201

233

10 42 * 74 J 106 j 138

170

202

234

11
J
43 + 75 K 107 k 139

171

203

235

12
K
44 , 76 L 108 l 140

172

204

236

13 45 - 77 M 109 m 141

173

205

237

14 N 46 . 78 N 110 n 142

174

206

238

15 47 / 79 O 111 o 143

175

207

239

16 4 48 0 80 P 112 p 144

176

208

240

17 3 49 1 81 Q 113 q 145

177

209

241

18 b bb b 50 2 82 R 114 r 146

178

210

242

19
!!
51 3 83 S 115 s 147

179

211

243

20 52 4 84 T 116 t 148

180

212

244

21 53 5 85 U 117 u 149

181

213

245

22 _ 54 6 86 V 118 v 150

182

214

246

23
Q
55 7 87 W 119 w 151

183

215

247

24 56 8 88 X 120 x 152

184

216

248

25 57 9 89 Y 121 y 153

185

217

249

26 58 : 90 Z 122 z 154

186

218

250

27 59 ; 91 [ 123 { 155

187

219

251

28 S 60 < 92 \ 124 | 156

188

220

252

29 61 = 93 ] 125 } 157

189

221

253

30 5 62 > 94 ^ 126 ~ 158

190

222

254

31 6 63 ? 95 _ 127 159

191

223

255
15
Codul ASCII (American Standard Code for Information
Interchange), este un cod binar alfanumeric, pe 8 bii, care realizeaz
reprezentarea n binar a caracterelor imprimabile sau nu. Codul ASCII a fost
definit de Institutul American de Standarde. La origine pe 7 bii (128 de
simboluri), a fost dezvoltat de IBM la 8 bii, rezultnd 256 simboluri (codul
fiecrui simbol este reprezentarea n binar a numrului su de ordine)
16

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