Sunteți pe pagina 1din 8

1.

MICROPROCESORUL Intel 8x86


1.1. Structura microprocesorului I8x86
Registre generale (816!"#iti$
31 15 8 0
EAX . AX %& %L Acumulator
EBX . BX '& 'L Baze reg.
ECX . CX C& CL Counter reg.
EDX . DX (& (L Data reg.
Registre pointer si in)ex( 16!"#iti$
31 1* 0
ESP . SP Stack pointer
EBP . BP Baze pointer
ES . S Source in!e"
ED . D De#tination in!e"
Registre )e #a+a pentru segmente
31 1* 0
ECS . CS Co!e #egment
EDS . DS Data #egment
ESS . SS Stack #egment
EES . ES E"tra #egment
$la Pentium e"i#ta #i reg.#egment %S& 'S(
Registre )e stare
31 15 0
P . %)resa instructiune curenta n#truction pointer
%)A' .*+ O ( I , S - % P C %lag regi#ter
Bitii !in regi#trul %lag #unt in!icatori !e #tare care #e pozitioneaza ,unctie !e
rezultatul ultimei operatii aritmetice #au logice #i #e te#teaza !e in#tructiunile !e #alt.
Instructiunile de transfer a datelor si salt nu pozitioneaza indicatorii.
- . -/er,lo0 ,lag !epa#ire capacitate regi#tru la operatii aritmetice
D . Direction ,lag !irectia !epla#arii la in#tr. pe #iruri !e caractere$ !10 #pre !reapta(
. nterupt ena2le,lag intreruperi a!mi#e
+ . +rap ,lag
S . Sign ,lag in!ica #emnul rezultatului $S10 poziti/& S11 negati/(
3 . 3ero ,lag in!ica rezultat zero $311(
A . Au"iliar carr4 +ran#port interme!iar !in rangul 5 $ A11(
P 6 Parit4 ,lag *umar !e 2iti par in rezultat $P11(
C . Carr4 ,lag +ran#port !in rangul cel mai #emni,icati/ $C11(
*+ . *e#te! ta#k Pentru control ta#k6uri
1
1.". Segmentarea programelor
Programele tre2uie #a ,ie mo!ulare #i relocata2ile 6 #a poata ,i incarcate oriun!e in
memorie #i #a poata rula !in acea zona.
7o!ulele /or cuprin!e in,ormatii !e acela#i tip rezultate !in compilarea programelor.
8n #egment poate cuprin!e mai multe mo!ule a#am2late !e )ink6E!itor.
8n program poate cuprin!e mai multe #egmente. E"i#ta 5 tipuri !e #egmente 9
segment )e co) ce contine numai in#tructiuni !e program cu a!re#e relati/e la
inceputul #egmentului& 2azat cu regi#trul !e #egment CS:
segment )e )ate ce contine numai !ate !in program& 2azat cu regi#trul DS :
segment )e )ate comune pentru mai multe #egmente& 2azat cu regi#trul ES :
segment )e sti.a ce contine !atele ge#tionate ca #ti/e& 2azat cu regi#trul SS :
mplicit a!re#ele !atelor !in program #e 2azeaza cu reg.DS& a!re#ele !e #alt cu reg.CS #i
a!re#ele !e #ti/a in!icate !e SP $Stack Pointer( cu reg.SS.
Structura unui program relocata#il /ormat )in segmente
Segment )e co)
CS01111 11
1
2
"*
1
3MP CS 4"*1
MO5 %6(S 471*18
MO5 '6ES 47918
6#alt la a!re#a ;50 !in #eg.
!e co! pla#at la a!re#a
1000 in!icata !e CS
$a!re#a a2#oluta 1;50(
6incarca z !in #eg. !e !ate
2azat cu DS !e la a!r. 150
6incarca " !e la a!r.50 !in
#eg.E"tern 2azat cu ES
Segment )ate locale
(S0"111 11
1
1*
1
-0!*1
6 a!re#a a2#oluta
;000<1501;150
Segment )ate extern (comune$
ES0*111 11
1
91
60!!!
6 a!re#a a2#oluta
5000<5015050
Segment )e sti.a
SS0:*11 ..
.
Contine toate #ti/ele
,olo#ite in program
;
3
Calculul a)resei /i+ice
15 0
Co)
instr.
O//set %)resa
((eplasament$
%)resa relati.a in
segment
15 ;
0
CS %)resa inceput segment 1111
1= 0
0
%)resa )e memorie /i+ica
1.!. Mo)uri )e a)resare
)a microproce#orul "8> poate e"i#ta o singura a)resa )e memorie in instructiune.
8n operan! e#te in regi#tru iar celalalt in memorie #au alt regi#tru.
%)resarea registru registru
%(( %6(6 se a)una continutul lui (6 la %6 pe 16 #iti
%(( '&CL se a)una continutul lui CL la '& pe 8 #iti
CO( instr Reg.sursa Reg.)estinatie < co)ul poate /i pe 1 sau " octeti
%)resarea ime)iata 6 un operan! e#te in in#tructiune
%(( %6*111 #e a!una 5000 la AX
%(( SI"* #e a!una ;5 la regi#trul S
CO( instr *111 $/aloare( < .aloarea operan) poate /i pe 1 " sau 9 octeti
%)resarea )irecta 6 un operan! e#te in memorie
%(( %6al/a continutul lui al,a #e a!una la AX $2azat cu DS(
%(( %67*118 continutul a!re#ei 500 #e a!una la AX
CO( instr %)resa relati.a in segment < a)resa poate /i pe 1 " sau 9 octeti
< co)ul poate /i pe 1 sau " octeti
%)resarea in)irecta
%(( %67'68 continutul a!re#ei in!icate !e BX #e a!una la AX $2azat cu DS(
'6 R%M
CO( in#tr. %)resa relati.a operan) Operan)"
5
%)resarea in)exata
%(( %667SI8 )in ta#loul 6 se ia elementul in)icat )e SI (a)r.in ta#lou$
,a#lou 6 ;SI
CO( in#tr. %)resa relati.a ta#lou 6 61 6" 6! 6i
%)resarea cu #a+a
%(( %67'6;*8 '6 in)ica o +ona )e )ate iar * este a)r.relati.a in +ona
'6 -ona )e )ate ;*
CO( in#tr. %)resa relati.a +ona Oper"
%)resarea cu #a+a si in)ex
%(( %67'6;SI;*8 '6 in)ica o +ona iar * este a)r.rel.a unui ta#lou si SI
po+itia elementului in ta#lou(nu in)ice$
'6 ;* ,a#lou 6 SI
CO( in#tr. %)resa relati.a +ona 61 6" 6i
1.9. =ormatul instructiunilor
n,ormatiile !in memoria ?A7 pot ,i9
6 )ate in 2inar& in /irgule ,lotanta& in zecimal #i pe !i,erite lungimi
< instructiuni !e !i,erite lungimi
n#tructiunile care #e ,olo#e#c !etermina cum #e interpreteaza acele in,ormatii.
n lim2a@ !e a#am2lare nu exista tipuri )e )ate )eclarate #i #e poate !a !oar lungimea.
Daca o /aria2ile in A% #e a!re#eaza cu o in#tructiune 2inara /aloarea e#te impre/izi2ila.
Daca regi#trul P $n#truction Pointer( #e incarca cu o a!re#a !e !ate& !atele #e
interpreteaza ca intructiune #i #e pot ,ace !i#trugeri in program. )a incarcarea unui
program #e #terge toata memoria pentru a nu ramane rezi!uri !in /ecBile programme.
Datele pot ,i 9 locale in segment #peci,icate prin a!re#a relati/e la care #e a!auga CDSD
comune mai multor segmente $e"t( #pec.prin a!r.rel. #i #e a!auga CESD
temporare care #e pa#treaza in #ti/e in #egmentul !e #ti/a a!r. CSPD< CSSD
Setul !e in#tructiuni al calculatorului cuprin!e9
in#tructiuni !e tran#,er& aritmetice #i logice realizate in !i#poziti/ul aritmetic:
in#tructiuni pentru prelucrare #iruri !e caractere $te"te(:
in#tructiuni !e control a programului $#alturi con!itionate(:
in#tructiuni !e calcul in Airgula %lotanta $A%( realizate in coproce##or:
in#tructiuni !e calcul in zecimal realizate in coproce##or
Pentium #i 58> cuprin! proce#or #i coproce#or care lucreaza in paralel. Coprocesorul
nu are mecanism )e calcul al a)resei si salt& care #e realizeaza !e proce##or.
5
Structura instructiunilor I8x86
CO( 6 in#tructiune pe un octet 7-A A)&B)
CO( a)r.rel 6in#tr. pe 3 octeti& a!re#are !irecta ADD BX&al,a
CO( operan)" 6 in#tr. pe ; #au 3 octeti . in#tr. ime!iata 7-A S&55
CO( a)r.rel operan)" 6 in#tr.pe 5 #au 5 oct 7-A X&5;00
CO( Mo) r>m )eplasament operan)" 6 in#tr > octeti 7-A XCSD&5;30
n toate cazurile !e mai #u# implicit la a!re#a relati/a #e a!una continutul reg. DS.
Daca #e !ore#te #a #e #peci,ice al regi#tru #egment !ecat cel implicit DS #au SS pentru
#ti/a& #e a!auga in ,ata un octet #uplimentar care #peci,ica reg.#egment e"plicit.
7-A AX&ES 9 CBX<5000D operan!ul #e ia !in #egmentul in!icat !e ES
Co!ul in#tructiei e#te pe 1 octet #i are #tructura !e 2aza 9
i Co) instr ) ? i11 . in#tructiune ime!iata
!11 . rezultatul in regi#tru !10 .rezultatul in memorie
011 6 operan! pe 1>2iti 010 6 operan! pe 8 2iti
n#tructiunile care ,ac re,erire la memorie contin o e"ten#ie !e co! notata 7o! rEm care
#peci,ica mo!ul !e a!re#are ,olo#it $reg6reg& 2azata& in!irecta&in!e"ata( #i are #tructura9
MO( r>m Mo) 6 ;c2 . mo!ul !e a!re#are ,olo#it
00 . !epla#ament 0 7-A AX&CBXD
01 . !epla#ament pe 8c2 7-A DX&CBX<;5D
10 . !epla#ament pe 1>c2 7-A DX&CBX<;500D
11 . a!re#are reg6 reg #i rEm pe 3c2 #peci,ica reg !e#tinatie
reg 6 3c2 co!ul regi#trului #ur#a utilizat
r>m 6 3c2 in!ica mo!ul !e a!re#are
000 a!re#area e#te !ata !e CBX<S<!eplD
001 a!re#area e#te !ata !e CBX<D<!eplD
010 a!re#area e#te !ata !e CBP<S<!eplD
011 a!re#area e#te !ata !e CBP<D<!eplD
100 a!re#area e#te !ata !e CS<!eplD
101 a!re#area e#te !ata !e CD<!eplD
110 a!re#area e#te !ata !e CBP<!eplD
111 a!re#area e#te !ata !e CBP<D<!eplD
Com2inatia 7o!100 #i rEm1110 in!ica o a!re#are !irecta.
>
>c2 ;c2 3c2 3c2 861>c2 861>c2
CO( ) ? Mo) reg r>m (epl>)ata )ata
Co!i,icarea regi#trelor in zona reg #i rEm e#te 9
reg si r>m ?01
reg. pe 16c#
?01
reg. pe 8c# reg pe !"c#
Registre
segment
111 %6 %L E%6 ES
111 C6 CL EC6 CS
111 (6 'L E(6 SS
111 '6 (L E'6 (S
111 SP %& ESP =S
111 'P C& E'P @S
111 SI (& ESI
111 (I '& E(I
P8SFA #al/eaza toare regi#trele in or!inea !ata !e co!ul regi#trului.
Pentru utilizarea regi#trelor pe 3; 2iti #e intro!uce un octet e"ten#ie !e co! #i inca unul
pentru utilizarea a!re#elor pe 3; 2iti.
Pentru e"ercitii #e /a ,olo#i programul !e !epanare A%D #i #e /or #tu!ia #tructurile
in#tructiunilor utilizate. A!re#ele !in memorie au octetii in/er#ati.
Speci,icarea lungimii operan!ului can! nu rezulta !in rei#trul ,olo#it #e #peci,ica prin 9
>' pentru un octet #i >A pentru ; octeti $0or!(.
%(( A>7'68*1 operan!ul #e con#i!er ape ; octeti
Pentru e"ercitii #e pot ,olo#i in#tructiunile !e mutare& aritmetice #i logice pe 1 #au ;octeti.
MO5 regB)estregBsursa tran#,er intre regi#tre
MO5 reg7a)resa8 tran#,er !in memorie in regi#tru $citire !in memorie(
MO5 7a)resa8reg tran#,er !in regi#tru in memorie $memorare regi#tru(
MO5 reg.aloare incarcare ime!iata in regi#tru
MO5 a)resa.aloare memorare ime!iata in memorie
Can! #e #peci,ica a!re#a& ea poate ,i !irecta& in!irecta&#auE#i in!e"ata.
PUS&% memorare toate regi#trele in #ti/a
POP% incarcare toate regi#trele !in #ti/a
%(( )estsursa #e a!una #ur#a la !e#tinatie cu un #ingur operan! in memorie
SU' )estsursa #e #ca!e !in !e#tinatie #ur#a
%C( )estsursa operatia logica S intre #ur#a #i !e#tinatie
OR )estsursa operatia logica SA8 intre #ur#a #i !e#tinatie
6OR )estsursa operatia logica SA8 EXC)8SA intre #ur#a #i !e#tinatie

G
1.*. Utili+are %=( (%).ance) =ull screen (e#uger$
E"i#ta mai multe ,ere#tre !epla#area cu ta#tele =9 sus =8 Dos=E stinga =11 )reapta
n ,iecare ,erea#tra #e poate mo!i,ica !irect pe ecran continutul regi#trelor& a!re#elor !e
memorie& a continutului celulelor !e memoriei.
ScBim2an! a!re#a #au reg.#egment #e #cBim2a zona !e memorie a,i#ata.
Aalorile !in regi#ter #i memorie #unt reprezentate in Be"azecimal.
%erea#tra !in !reapta @o# !a continutul ASC al locatiilor !e memoriei !in ,erea#tra ;.
=9 a,i#eaza Felp6ul programului
=1 Step e"ecuta o in#tructiune !e program$ pa# !e program(.
=1 StepProg e"ecuta un program terminat cu IC, ! $termina un ta#k #i re/ine in A%D(.
=ereastra CM( !e coman!a permite intro!ucerea !e comenzi 9
( a)resa 6a,i#eaza in Be"a #i in lim2a@ !e a#am2lare o zona !e program.
R reg1/al initializeaza regi#tre
M n a)resa a,i#eaza zona !e memorie in ,erea#tra 1 #au ; $n11&;(
% a)resa a#am2leaza un program !e la a!re#a $H100(& reg #eg. CS $Exit<Ctr>&ome(
@ a)resa lan#are un program !e la a!re#a 2azata cu CS $oprire cuCtr>Esc(
L prog incarca un program .e"e in memorie la a!re#a
A /isa)rlung #crie intr6un ,i#ier o zona !e memorie !e lungime #peci,icata
FUI, terminare A%D #i ie#ire in D-S #au Iin!o0#
8

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