sz ámítógép architektúra
DESCRIPTION
Sz ámítógép architektúra. C ímzésmódok. Operandusok. egy operandus hossza lehet: 1 byte 2 byte (szó) 4 byte egy operandus lehet: az utasítás része regiszterben memóriában az adatszegmensben (címzés a DS szegmensregiszterrel) a veremszegmensben (címzés az SS szegmensregiszterrel) - PowerPoint PPT PresentationTRANSCRIPT
Számítógép architektúra
Címzésmódok
2007 Címzésmódok 2-21
Operandusok
• egy operandus hossza lehet:– 1 byte
– 2 byte (szó)
– 4 byte
• egy operandus lehet:– az utasítás része
– regiszterben
– memóriában• az adatszegmensben (címzés a DS szegmensregiszterrel)
• a veremszegmensben (címzés az SS szegmensregiszterrel)
• valamelyik járulékos szegmensben (címzés az ES, FS vagy GS szegmensregiszterrel)
2007 Címzésmódok 3-21
Közvetlen címzés
• Az operandus az utasítás része• Operandus = cím mező• Pl. ADD AX,5
– Adj hozzá 5-öt az akkumulátorhoz– 5 operandus
• Nincs memória hivatkozás hogy megkapjuk az operandust
• Gyors
2007 Címzésmódok 4-21
Közvetlen címzés diagramm
OperandusOpkód
Utasítás
2007 Címzésmódok 5-21
Regiszter címzés
• Az operandus a cím mező által megadott regiszterben van
• Effective address (ea) = R• Példa: ADD AX,BX• Nincs memória hozzáférés• Nagyon gyors végrehajtás• Kevés regiszter• Nagyon kicsi címtartomány • Rövidebb utasítások• Gyorsabb utasítás lehívás
2007 Címzésmódok 6-21
Regiszter címzés diagramm
R regiszter címOpkód
Utasítás
Regiszterek
Operandus
2007 Címzésmódok 7-21
Memória operandusok
Valós üzemmód:
Szegmens szám
15 0
·16 + eltolás (offset)
15 0
Védett üzemmód:
Szegmens szelektor
15 0
eltolás (offset, effective address)
31 0
2007 Címzésmódok 8-21
Effektív cím (1)
• Megadható statikus értékként (direkt címzés)
• Kiszámítható végrehajtáskor a következő komponensekből:– eltolás – egy 8, 16 vagy 32 bites érték– bázis – egy általános célú regiszter tartalma– index – egy általános célú regiszter tartalma– skálázási tényező – 2, 4 vagy 8, amivel szorozzuk
az indexregiszter tatalmát
2007 Címzésmódok 9-21
Effektív cím (2)
• 32 bites regiszterek esetén bármelyik általánoscélú regiszter lehet bázis illetve indexregiszter
• Skálázási tényezőt csak 32 bites indexregiszterrel használhatunk
• ESP nem használható indexregiszterként• ESP (SP) és EBP (BP) a veremszegmensben határoz
meg címet• Más bázisregiszter esetén az adatszegmens az implicit• 16 bites regiszterek használata esetén csak az adott
célra szolgáló regiszterek használhatóak bázis ill. indexregiszterként.
2007 Címzésmódok 10-21
Direkt címzés
• A cím mező az operandus címét tartalmazza• ea = cím mező• Pl. ADD AX,[A]
– az A címen levő értéket hozzáadja az akkumulátorhoz
– a memóriában az A címen keresi az operandust
• Egyetlen memória hivatkozással kapja meg az adatot• Nincs szükség plussz műveletekre a címszámításhoz• Statikus adatok címzésére
2007 Címzésmódok 11-21
Direct címzés diagramm
A címOpkód
Utasítás
Memória
Operandus
2007 Címzésmódok 12-21
Regiszter indirekt címzés
• ea = [R]
• Az operandus az R regiszter által mutatott memória címen van
• R lehet BX, SI vagy DI
• 4 byte-os regiszterek használata esetén nincs megkötés, bármelyik regiszter lehet
2007 Címzésmódok 13-21
Regiszter indirekt címzés diagramm
R regiszter címOpkód
Utasítás
Memória
OperandusMutató az operandusra
Regiszterek
2007 Címzésmódok 14-21
Báziscímzés• ea = [R+eltolás]• A cím mező két részből áll
– báziscím a BX vagy BP vagy valamely 32 bites regiszterben
– 8, 16 vagy 32 bites eltolás
• Az eltolást előjelhelyesen kiegészítve hozzáadja a bázisregiszter tartalmához
• BX az adatszegmensben, BP a veremszeg-mensben címez
• Adatstruktúra elemeihez való hozzáférés
2007 Címzésmódok 15-21
Báziscímzés diagramm
R regiszterOpkód
Uasítás
Memória
OperandusBáziscím
Regiszterek
Eltolás
+
2007 Címzésmódok 16-21
Indexelt címzés• ea = [R*s+eltolás]
• A cím mező két részből áll– index az SI, DI vagy valamely 32 bites regiszterben– 8, 16 vagy 32 bites eltolás
• 32 bites indexelő regiszter esetén s skálázó tényező használható (2, 4 vagy 8)
• Az eltolást előjelhelyesen kiegészítve hozzáadja a skálázott indexregiszter tartalmához
• Egy dimenziós tömb elemeihez való hozzáférés
2007 Címzésmódok 17-21
Indexelt báziscímzés
• ea = [Rb+Ri*s]
• A cím mező két részből áll– index az SI, DI vagy valamely 32 bites regiszterben
– báziscím a BX, BP vagy valamely 32 bites regiszterben
• Az bázisregiszter tartalmát hozzáadja a skálázott indexregiszter tartalmához
• 32 bites indexelő regiszter esetén s skálázó tényező használható (2, 4 vagy 8)
2007 Címzésmódok 18-21
Indexelt báziscímzés eltolással
• ea = [Rb+Ri*s+eltolás]• A cím mező 3 részből áll
– index az SI, DI vagy valamely 32 bites regiszterben– báziscím a BX, BP vagy valamely 32 bites regiszterben– 8, 16 vagy 32 bites eltolás
• A bázisregiszter tartalmát és az eltolást előjelhelyesen kiegészítve hozzáadja a skálázott indexregiszter tartalmához
• 32 bites indexelő regiszter esetén s skálázó tényező használható (2, 4 vagy 8)
2007 Címzésmódok 19-21
Címzési lehetőségek 32 bites regiszterekkel
Bázis
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
Index
EAX
EBX
ECX
EDX
EBP
ESI
EDI
*
Skálázási tényező
1
2
4
8
Eltolás
Nincs
8 bit
16 bit
32 bit
+ +
2007 Címzésmódok 20-21
Címzési lehetőségek 16 bites regiszterekkel
Bázis
BX
BP
Index
SI
DI
Eltolás
Nincs
8 bit
16 bit
+ +
2007 Címzésmódok 21-21
Cím
• Egy cím lehet:– közeli (near) – csak az eltolást kell megadni– távoli (far) – meg kell adni a szegmens címet és
az eltolást is