Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Számítógép architektúra
x86-os processzorok
2
A processzor felépítése (8086)
Vérehajtó egység (EU): regiszterek, vezérlő egység (CU), aritmetikai logikai egység (ALU) – az utasítások végrehajtása Sín illesztő egység (Bus interface unit – BIU): behozza az utasításokat a EU-ba, kezeli a szegmensregisztereket és az utasítássort A két egység egymástól függetlenül, aszinkron működik 2007 x86-os processzorok
3
Belső memória ROM – Read Only Memory, csak olvasható, a BIOS gépfüggő részének tárolására RAM – Random Access Memory Regiszterek és memória közti átvitel – az alacsonyabb helyiértékű byte a regiszterből a kisebb memóriacímre kerül (little endian) 2007 x86-os processzorok
4
cím = szegmensregiszter * 16 + eltolás
Valós üzemmód 16 bites szegmensregiszterek 16 bites eltolás – a szegmens hossza max. 64 kB Szegmensen belüli címtartomány: 0000h – FFFFh 20 bites címek – 1 MB címezhető tartomány Címszámítás: cím = szegmensregiszter * 16 + eltolás 2007 x86-os processzorok
5
16 bites védett üzemmód A 80286-os processzortól
A szegmensregiszterek egy szelektort tartalmaznak, ami index a deszkriptortáblához Minden szegmenshez tartozik egy bemenet a deszkriptortáblában, ami megadja a szegmens jellemzőit: kezdőcím, hossz, hozzáférési jogok, védelmi információk Továbbra is 16 bites offset, a szegmens hossza max. 64 kB. 2007 x86-os processzorok
6
32 bites védett üzemmód A 80386-os processzortól
A 16 bites védett üzemmódhoz hasonlóan működik 32 bites eltolással A szegmens hossza max. 4 GB Lehetséges a lapozás – 4 kB fix hosszúságú lapokra ossza a memóriát (a virtuális memória kezelés a szegmentálás mellett lapozással is dolgozhat) 2007 x86-os processzorok
7
Regiszterek Nagyon gyors hozzáférésű memória a processzoron belül
Dolgozhatunk 32, illetve 16 bites regiszterekkel A regisztereknek jól meghatározott feladata van Nagyrészük használható ideiglenes tárolásra amikor nincs szükség a sajátos szerepére 2007 x86-os processzorok
8
Szegmensregiszterek (1)
16 bites regiszterek CS – cod segment register – a kódszegmens kezdőcímét határozza meg. Az IP regiszterrel együtt [CS:IP] megadja a soron következő utasítás címét DS – data segment register – az adatszegmens kezdőcímét határozza meg. Az utasításokba foglalt eltolásokkal megadja az operandus címét 2007 x86-os processzorok
9
Szegmensregiszterek (2)
SS – stack segment register – a veremszegmens kezdőcímét határozza meg, az SP [SS:SP] illetve BP [SS:BP] regiszterekkel együtt adja meg a verembeli címet ES – extra segment register – string műveleteknél a DI regiszterrel [ES:DI] adja meg a cél operandus címét FS, GS – a os processzortól még két extra szegmens 2007 x86-os processzorok
10
Mutató (pointer) regiszterek
Címszámításnál az eltolást adják meg EIP (IP) – Instruction Pointer – utasítás számláló ESP (SP) – Stack Pointer – verem mutató EBP (BP) – Base Pointer – bázis mutató EIP a kódszegmensre, ESP és EBP a verem-szegmensre mutat 2007 x86-os processzorok
11
Általános regiszterek (1)
EAX, EBX, ECX, EDX – 32 bites regiszterek AX, BX, CX, DX – 16 bites regiszterek, a fentiek alacsonyabb helyiértékű 2 byte-ja AL, BL, CL, DL – a 16 bites regiszterek alacsonyabb helyiértékű byte-ja AH, BH, CH, DH – a 16 bites regiszterek magasabb helyiértékű byte-ja AH AL AX EAX 2007 x86-os processzorok
12
Általános regiszterek (2)
EAX – akkumulátor – I/O műveletek és egyes aritmetikai műveletek használják EBX – bázis regiszter – címzésnél bázisregisz-terként használható az adatszegmensben ECX – számláló regiszter – ciklusszervezésnél, bitműveleteknél számláló EDX – data regiszter – I/O műveletek, illetve a szorzás és az osztás használják (párban az EAX regiszterrel) 2007 x86-os processzorok
13
Index regiszterek ESI (SI) – Source Index – string műveleteknél a DS regiszterrel adja meg a forrásoperandus címét [DS:SI] EDI (DI) – Destination Index – string műveleteknél az ES regiszterrel adja meg a céloperandus címét [ES:DI] 2007 x86-os processzorok
14
Állapotregiszter EFLAGS – 32 bites regiszter
FLAGS – alacsonyabb helyiértékű 16 bit Az utasítások végrehajtásának eredményére vonatkozó, illetve vezérlő információt tartalmaz – jelzőbitek Valós üzemmódban használható jelzőbitek: Jelzőbit O D I T S Z A P C Bit száma 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2007 x86-os processzorok
15
Jelzőbitek (1) CF – Carry Flag – átvitel bit, aritmetikai illetve biteltolás műveleteknél ide kerül a kifutó bit PF – Parity Flag – paritás bit, 1, ha az eredmény alacsonyabb helyiértékű byte-ja számjegyeinek összege páros AF – Adjust Flag – segédátvitel, BCD aritmetikánál használt, átvitel a 3-as bitről 2007 x86-os processzorok
16
Jelzőbitek (2) ZF – Zero Flag – 1, ha az eredmény nulla
SF – Sign Flag – 1, ha az eredmény negatív OF – Overflow Flag – 1, ha aritmetikai túlcsordulás történt DF – Direction Flag – vezérlő bit, string műveletek irányát határozza meg IF – Interrupt enable Flag – vezérlő bit, maszkolható megszakítások letiltása TF – Trap Flag – vezérlő bit, lépésenkénti üzemmód, azaz minden utasítás végrehajtása után megszakítás – debug lehetséges 2007 x86-os processzorok
17
Regiszterek (összefoglaló)
EAX EBX ECX EDX EIP ESP EBP ESI EDI CS DS SS ES FS GS AH AL BH BL CH CL DH DL IP SP BP SI DI I VI VI A V R N I O O D I T S Z A P C D P F C M F T P L F F F F F F F F F EFLAGS 2007 x86-os processzorok
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.