Documente Academic
Documente Profesional
Documente Cultură
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.
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
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
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
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
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
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
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
10
15
14
3
SELECTOR
13 BITI
TI
RPL1 RPL0
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
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
B1 B0
L1
L0
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
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
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
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
MARIME
4 BITI
NUMAR
8 BITI
DUBLA
8 BITI
PRECIZIE
8 BITI
PE
8 BITI
52 DE
8 BITI
BITI
8 BITI
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