78
Máté: Architektú rák 9. előadás 1 Memória modellek Memória szemantika: STORE A -t közvetlenül követő LOAD A mit ad vissza? A memória műveletek végrehajtása: • kötött sorrendben, • definiálatlan sorrendben (ez a trend, mert hardver szinten egyszerűbb és gyorsabb). A hardver segítséget nyújthat: SYNC utasítás: befejeztet minden megkezdett memória műveletet, – függőség esetén a hardver vár.

Memória modellek Memória szemantika : STORE A -t közvetlenül követő LOAD A mit ad vissza ?

  • Upload
    robyn

  • View
    27

  • Download
    2

Embed Size (px)

DESCRIPTION

Memória modellek Memória szemantika : STORE A -t közvetlenül követő LOAD A mit ad vissza ? A memória műveletek végrehajtása: kötött sorrendben, definiálatlan sorrendben (ez a trend, mert hardver szinten egyszerűbb és gyorsabb). A hardver segítséget nyújthat: - PowerPoint PPT Presentation

Citation preview

Page 1: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 1

Memória modellek

Memória szemantika: STORE A -t közvetlenül követő LOAD A mit ad vissza?

A memória műveletek végrehajtása:

• kötött sorrendben,

• definiálatlan sorrendben (ez a trend, mert hardver szinten egyszerűbb és gyorsabb). A hardver segítséget nyújthat:

– SYNC utasítás: befejeztet minden megkezdett memória műveletet,

– függőség esetén a hardver vár.

Page 2: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 2

RegiszterekISA-szinten a mikroszint nem minden regisztere

látszik (TOS, MAR), de van közös is (PC, SP). Speciális regiszterek: PC, SP, …Általános célú regiszterek: a gyakran használt adatok

gyors elérésére. Jó, ha szimmetrikusak: fordítók, konvenciók.

RISC gépen általában legalább 32 általános célú. Kernelmódban továbbiak: gyorsítótár vezérlés,

memória védelem, … PSW (Program Status Word): az eredmény negatív,

nulla, ... mód, prioritásszint, megszakítás-állapot, ...

Page 3: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 3

Utasításkészlet

LOAD, STORE,

MOVE, aritmetikai, logikai,

feltétlen, feltételes elágazó utasítások,

Page 4: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 4

Pentium 4

Nagyon sok előd (kompatibilitás!), a fontosabbak:

• 4004: 4 bites, • 8086, 8088: 16 bites, 8 bites adat sín. • 80286: 24 bites (nem lineáris) címtartomány

(16 K darab 64 KB-os szegmens). • 80386: IA-32 architektúra, az Intel első 32 bites

gépe, lényegében az összes későbbi is ezt használja.• Pentium II –től MMX utasítások.

Page 5: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 5

A Pentium 4 üzemmódjai

real (valós): az összes 8088 utáni fejlesztést kikapcsolja (valódi 8088-ként viselkedik). Hibánál a gép egyszerűen összeomlik, lefagy.

virtuális 8086: a 8088-as programok védett módban futnak (ha WINDOWS-ból indítjuk az MS-DOS-t, és ha abban hiba történik, akkor nem fagy le, hanem visszaadja a vezérlést a WINDOWS-nak).

védett: valódi Pentium 4. 4 védelmi szint (PSW):

0: kernelmód (operációs r.), 1, 2: ritkán használt, 3: felhasználói mód.

Page 6: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 6

Memóriaszervezés:

• 16 K db szegmens lehetséges, de a WINDOWS-ok és UNIX is csak 1 szegmenst támogatnak, és ennek is egy részét az operációs rendszer foglalja el,

• minden szegmensen belül a címtartomány: 0 - 232-1

• Little endian tárolási mód: az alacsonyabb címen van az alacsonyabb helyértékű bájt.

Page 7: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 7

Regiszterek (5.3. ábra):

• (majdnem) általános regiszterek:

Ezek 8 és 16 bites részei önálló regiszterként használhatók.

EAX

EBX

ECX

EDX

ALAH AX

BLBH BX

CLCH CX

DLDH DX

3216

88

Accumulator

Base index

Count

Data

Page 8: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 8

Regiszterek (5.3. ábra):

• ESI, EDI (mutatók tárolására, szöveg kezelésre),

• EBP (keretmutató, verem kezelésre),

• ESP (verem mutató),

• EIP (utasítás számláló),

• EFLAGS (PSW),

• CS, SS, DS, ES, FS, GS (16 bites regiszterek. A kompatibilitást biztosítják a régebbi gépekkel. Mivel a Windows, Unix csak egy címtartományt használ, ezekre csak a visszafelé kompatibilitás miatt van szükség).

Page 9: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 9

UltraSPARC III

SPARC (1987) még 32, a Version 9 már 64 bites architektúra, az UltraSPARC ezen alapul.

Memóriaszervezés: 64 bites (lineáris) címtartomány (jelenleg maximum 44 bit használható). Big endian, de little endian is beállítható.

Regiszterek:

• 32 általános (5.4. ábra) 64 bites, a használatuk részben konvención, részben a hardveren alapul),

• 32 lebegőpontos (32 vagy 64 bites, de lehetséges két regiszterben egy 128 bites számot tárolni).

Page 10: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 10

Általános regiszterek

• R0-R7 (G0-G7) Globális változók: minden eljárás használhatja, G0 huzalozott 0, minden tárolás eredménytelen.

• R8-R15 (O0-O7,): Kimenő paraméterek,de R14 (O6) = SP: verem mutató O7 csak ideiglenes tárolásra használható.

• R16-R23 (L0-L7) Lokális regiszterek

• R24-R31 (I0-I7) Bejövő paraméterek, de R30 (I6) = FP az aktuális veremkeret mutatója, R31: visszatérési cím.

Page 11: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 11

CWP (Current Window Pointer, 5.5. ábra) mutatja az aktuális regiszter ablakot (több regiszter készlet létezik, de mindig csak egy látszik). Ha kifogy a regiszter készlet, memóriába mentés, …

Bemenő

Lokális

Kimenő Bemenő

Lokális

Kimenő

Korábbi

Korábbi

GlobálisGlobális

R30=FP

R14=SP R30=FP

SP

Átlapolás

CWP = 7

CWP = 6

R31=visszatérési cím

R31=visszatérési cím

O

L

I

O

L

I

Page 12: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 12

Load/store architektúra: csak ezek az utasítások fordulhatnak a memóriához. A többi utasítás operandusa regiszterben vagy az utasításban van. Az eredmény is regiszterbe kerül.

Page 13: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 13

5.6. ábra. A 8051 memória szervezése

Külön címtartományú program és adat memória.

4095

0127

48

32

0

Program memória (ROM)

Munkaterület

Bit-címezhető memória

4 regiszterkészlet

Vannak lapkán kívüli bővítési lehetőségek. Van nagyobb (8052) és programozható (8751 és 8752) „rokona” (ROM helyett EPROM).

8 regiszter: R0, … , R7. A regiszterek a memóriában vannak. 4 regiszter készlete van, de egyszerre csak egy használható.

Page 14: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 14

5.6. ábra. A 8051 memória szervezése, fő regiszterei PSW: Carry, Auxiliary carry, RegisterS, Overflow, ParityA PSW regiszter RS mezeje mondja meg, hogy melyik

regiszterkészlet az aktuális.Bit-címezhető memória (32-47. bájt): címzésük: 0-127Bit utasítások: beállítás, törlés, ÉS, VAGY, tesztelés.

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

Munkaterület

Bit-címezhető memória

4 regiszterkészlet

127

48

32

0

Page 15: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 15

IE (Interrupt Enable): EA= 1: nincs tiltva a megszakítás, 0: mind tiltva van, ES=1: megszakítás engedélyezve a soros vonalon, 0: tiltva E0-2=1: a 0-2 időzítő csatorna engedélyezve, 0: tiltva.Az engedélyezett számlálók egyszerre futhatnak, és ezek megszakítást válthatnak ki. X0-1=1: külső eszköz megszakítás engedélyezve, 0: tiltva

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

IP (Interrupt Priority): 0 (alacsony), 1 (magas). Az alacsonyabb szintű megszakítást megszakíthatja egy magasabb szintű.

Page 16: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 16

TCON: a 0. és 1. időzítőt vezérli (ezek a fő időzítők). O0-1: beáll az időzítő túlcsordulásakor.R0-1: ezzel ki- és bekapcsolható az időzítő futása.A többi bit az időzítő él- vagy szintvezérlésével kapcsolatos.

TMOD: a fő időzítők üzemmódját határozza meg 8, 13 vagy 16 bites,valódi időzítő vagy számláló,hardver jelek szintje.

C A RS O P PSW

EA E2 ES E1 X1 E0 X0 IE

E2 ES E1 X1 E0 X0 IP

O1 R1 O0 R0 E1 X1 E0 X0 TCON

1. időzítő 2. időzítő TMOD← 8 bit →

Page 17: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 17

Az eddig említett és még néhány speciális regiszter (ACC, B/K portok, …) a 128-255 címtartományban vannak. Pl. ACC a 240-en.

A 8052 valódi memóriát tartalmaz a 128-255 tartományban, a speciális regiszterek címe átfed a memóriával.– Direkt címzéssel a speciális regisztereket,– Indirekt címzéssel a RAM-ot érhetjük el.

Page 18: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 18

Címzési módszerek

3, 2, 1, 0 címes utasítások.

Címzési módok:

• közvetlen operandus,

• direkt címzés,

• regiszter címzés

• regiszter-indirekt címzés,

• indexelt címzés,

• bázisindex címzés,

• verem címzés.

Page 19: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 19

Verem címzés

Fordított Lengyel Jelölés

(Postfix Polish Notation - Lukasiewicz)

Postfix jelölés: a kifejezéseket olyan formában adjuk meg, hogy az első operandus után a másodikat, majd ezután adjuk meg a műveleti jelet:

infix: x + y, postfix: x y +.

Előnyei: nem kell zárójel, sem precedencia szabályok, jól alkalmazható veremcímzés esetén.

Page 20: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 20

Dijkstra algoritmusa

Infix jelölés konvertálása postfix-re (5.21, 22. ábra):• az infix elemek egy váltóhoz (switch) érkeznek - a

változók és konstansok Kaliforniába mennek (), • a többi esetben a verem tetejétől függően (5.22. ábra):

– a kocsi Texas felé megy (1: ),– a verem teteje Kaliforniába megy (2: ),– a kocsi eltűnik a verem tetejével együtt

(3: ),– vége az algoritmusnak (4: ),– hibás az infix formula (5: ?).

A * ( B + C )

váltó

Page 21: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 21

Minden változó és konstans menjen Kaliforniába (), a többi esetben a döntési tábla szerint járjunk el (5.21. ábra):

A * ( B + C )

A váltó előtti kocsi

+ - * / ( )

?

+ - * / ( ?

változó Kaliforniába

New Yorkból Texasba

Texasból Kaliforniába

Törlődjön a következő és az utolsó

texasi kocsi

„ Kaliforniában” kész a postfix forma

? Hibás az infix formula

A v

erem

tet

eje

A döntési tábla tartalmazza a prioritási szabályokat.

váltó

Page 22: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 22

▼ A*(B+C)

A ▼ *(B+C)

A ▼ (B+C) *

A ▼ B+C) (*

AB ▼ +C) (*

A váltó előtti kocsi + - * / ( )

?+ - * / ( ? A

ver

em t

etej

e

Page 23: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 23

A váltó előtti kocsi + - * / ( )

?+ - * / ( ? A

ver

em t

etej

e

AB ▼ C)

+ (*

ABC ▼ ) +

( *

ABC+ ▼ )

( *

ABC+ ▼ *

ABC+* ▼

Page 24: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 24

Fordított lengyel jelölésű formulák kiértékelése

Pl. (5.24. ábra):

(8 + 2 * 5)/(1 + 3 * 2 – 4) // infix8 2 5 * + 1 3 2 * + 4 – / // postfix

Olvassuk a formulát balról jobbra!

Ha a következő jel

• operandus: rakjuk a verembe,

• műveleti jel: hajtsuk végre a műveletet (a verem tetején van a jobb, alatta a bal operandus!).

Page 25: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 25

Lépés Maradék formula Utasítás Verem1 8 2 5 * + 1 3 2 * + 4 - / BIPUSH 8 82 2 5 * + 1 3 2 * + 4 - / BIPUSH 2 8, 23 5 * + 1 3 2 * + 4 - / BIPUSH 5 8, 2, 54 * + 1 3 2 * + 4 - / IMUL 8, 105 + 1 3 2 * + 4 - / IADD 186 1 3 2 * + 4 - / BIPUSH 1 18, 17 3 2 * + 4 - / BIPUSH 3 18, 1, 38 2 * + 4 - / BIPUSH 2 18, 1, 3, 29 * + 4 - / IMUL 18, 1, 6

10 + 4 - / IADD 18, 711 4 - / BIPUSH 4 18, 7, 412 - / ISUB 18, 313 / IDIV 6

(8 + 2 * 5)/(1 + 3 * 2 – 4) // infix

Page 26: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 26

Az ISA szint tervezési szempontjai

• Hosszú távú: később is jó legyen az architektúra,Rövid távú: addig is piacon kell maradni.

• Rövidebb utasítások: kevesebb helyet foglalnak el, gyorsabban betölthetők.Hosszabb utasítások: több lehetséges műveleti kód, nagyobb memória címezhető.

• Bájt címzés: hatékonyabb szöveg feldolgozásnál,Szó címzés: nagyobb memória címezhető.

• …

Page 27: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 27

Utasításformák, utasításhossz (5.10-11. ábra).

Műveleti kód

Műveleti kód cím

Műv. kód cím1 cím2

M.k. cím1 cím2 cím3

1 szó

utasítás

utasítás

utasítás

utasítás

1 szó

utasítás utasítás

utasítás utasítás

utasítás utasítás

utasítás utasítás

1 szó

utasítás

utasítás ut. ut.

utasítás

Page 28: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 28

A műveleti kód kiterjesztése

k bites műveleti kód esetén 2k különböző utasítás lehet, n bites címrésznél 2n memória címezhető, fix utasítás hossz esetén egyik csak a másik rovására növelhető (5.12. ábra).

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

műv. kód 1. cím 2. cím 3. cím

Lehetőségek:• fix utasításhossz: rövidebb kód mellett hosszabb operandus

rész,• minimális átlagos utasításhossz: a gyakori kódok rövidek, a

ritkán használtak hosszabbak.

Page 29: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 29

A műveleti kód kiterjesztése (5.13. ábra)

16 bit

4 bites műveleti

kód

0000 xxxx yyyy zzzz

15 db 3 címes utasítás

0001 xxxx yyyy zzzz0010 xxxx yyyy zzzz

.

.

.1100 xxxx yyyy zzzz1101 xxxx yyyy zzzz1110 xxxx yyyy zzzz

16 bit

8 bites műveleti

kód

1111 0000 yyyy zzzz

14 db 2 címes utasítás

1111 0001 yyyy zzzz1111 0010 yyyy zzzz

.

.

.1111 1011 yyyy zzzz1111 1100 yyyy zzzz1111 1101 yyyy zzzz

Az 1111 kódot nem használtuk ki 3 címes utasításnak (menekülő kód), és ez lehetővé teszi, hogy további – igaz, nem 3 címes – utasításokat adjunk meg.1111 1110 és 1111 1111 is menekülő kód.

Page 30: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 30

A műveleti kód kiterjesztése16 bit

12 bites műveleti

kód

1111 1110 0000 zzzz

31 db 1 címes utasítás

1111 1110 0001 zzzz1111 1110 0010 zzzz

.

.

.1111 1110 1110 zzzz1111 1110 1111 zzzz1111 1111 0000 zzzz1111 1111 0001 zzzz

.

.

.1111 1111 1101 zzzz1111 1111 1110 zzzz

16 bit

16 bites műveleti

kód

1111 1111 1111 0000

16 db 0 címes utasítás

1111 1111 1111 00011111 1111 1111 0010

.

.

.1111 1111 1111 11011111 1111 1111 11101111 1111 1111 1111

1111 1111 1111 is menekülő kód.

Page 31: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 31

Ortogonalitási elv: Jó architektúrában a műveleti kódok és a címzési módszerek (majdnem) szabadon párosíthatók.

Három címes elképzelés (5.25. ábra):

8 1 5 5 5 8

1 Műv.kód 0 cél forrás1 forrás2 Műv.kód

2 Műv.kód 1 cél forrás1 eltolás

3 Műv.kód eltolás

1. típus: aritmetikai utasítások. 2. típus: közvetlen adat megadás,

index módú LOAD és STORE utasítás.3. típus: elágazó, eljárás hívó utasítások,

LOAD és STORE, ezek R0-t használnák.

Page 32: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 32

Két címes elképzelés (5.26. ábra).

8 3 5 4 3 5 4

Műv.kód mód reg eltolás mód reg eltolás

Feltételesen: 32 bites direkt operandus vagy eltolás

Feltételesen: 32 bites direkt operandus vagy eltolás

A mód 3 bitje lehetővé teszi a közvetlen operandus, direkt, regiszter, regiszter indirekt, index és verem címzési módokat

Két további mód bevezetésére is lehetőség van.

Page 33: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 33

Pentium 4 utasításformái (5.14. ábra)

Több generáción keresztül kialakult architektúra.

Csak egy operandus lehet memória cím.

Prefix, escape (bővítésre), MOD, SIB (Scale Index Base)

0-5 1-2 0-1 0-1 0-4 0-4

prefix műv.kód MOD SIB eltolás közvetlen

2 3 3

mód REC R/M

2 3 3

skála index bázis6 1 1

utasítás

Melyik operandus a forrás? bájt/szó

bit

bit

bit

bájt

Page 34: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 34

SIB (5.28. ábra): jó, de megéri?

← EBP

Egyéb lokális

változók

a[0] ← EBP+8

a[1] ← EBP+12

a[2] ← EBP+16

Ver

em k

eret

Legyen i az EAX regiszterben

SIB módú hivatkozás:M[4*EAX+EBP+8]

2 3 3

skála index bázis

bit

Page 35: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 35

Címzési módok (5.27. ábra): nagyon szabálytalan. Baj: nem minden utasításban használható minden mód, nem minden regiszter használható minden módban (nincs EBP indirekt, ESP relatív címzés). 32 bites címzési módok:

MÓD

R/M 00 01 10 11

000 M[EAX] M[EAX+offset8] M[EAX+offset32] EAX v. AL

001 M[ECX] M[ECX+offset8] M[ECX+offset32] ECX v. CL

010 M[EDX] M[EDX+offset8] M[EDX+offset32] EDX v. DL

011 M[EBX] M[EBX+offset8] M[EBX+offset32] EBX v. BL

100 SIB SIB offset8-cal SIB offset32-vel ESP v. AH

101 direkt M[EBP+offset8] M[EBP+offset32] EBP v. CH

110 M[ESI] M[ESI+offset8] M[ESI+offset32] ESI v. DH

111 M[EDI] M[EDI+offset8] M[EDI+offset32] EDI v. BH

Page 36: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 36

UltraSPARC utasításformái (5.15. ábra)

32 bites egyszerű utasítások.

Forma 2 5 6 5 1 8 5

1a m.k. cél m.k. forrás1 0 FP-m.k. forrás2 3 címes

1b m.k. cél m.k. forrás1 1 közvetlen konst. 2 címes

Aritmetikai utasítások: 1 cél és 2 forrás regiszter vagy 1 cél, 1 forrás regiszter és 1 közvetlen konstans.

LOAD, STORE (csak ezek használják a memóriát): a cím két regiszter összege vagy egy regiszter + 13 bites eltolás.

Processzorokat szinkronizáló utasítás.

Page 37: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 37

32 bites közvetlen adat megadása: SETHI – megad 22 bitet, a következő utasítás a maradék 10 bitet.

Forma 2 5 3 22

2 m.k. cél m.k. közvetlen konstans SETHI

Forma 2 1 4 3 22 (19)

3 m.k. A felt m.k. PC relatív cím UGRÁS

Az ugrások PC-relatívok, szót (4-gyel osztható bájt címet) címeznek. Jósló utasításokhoz 3 bitet elcsíptek. Az A bit az eltolás rést akadályozza meg bizonyos feltételek esetén.

3

Forma 2 30

4 m.k. PC relatív cím CALL

Eljárás hívás: 30 bites PC-relatív (szó) cím

Page 38: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 38

UltraSPARC címzési módjai

Memóriára hivatkozó utasítások: betöltő, tároló, multiprocesszor szinkronizáló

index + 13 bit eltolás (1b), bázis-index (1a).

A többi utasítás általában 5 bites regiszter címzést használ

Page 39: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 39

A 8051 utasításformátumai1 Műv.kód Pl. ACC növelő

2 Műv.kód R R 3 bites regisztercím

3 Műv.kód Operandus

4 Műv.kód 11 bites cím

5 Műv.kód 16 bites cím

6 Műv.kód Operandus1 Operandus2

1. Implicit regiszter általában ACC, …2. Regiszter és ACC tartalmán végzett művelet, mozgatás, …3. Operandus: közvetlen, eltolás, bitsorszám4. Ugrás, szubrutin (eljárás) hívás5. Ugrás, szubrutin (eljárás) hívás 6. Pl. közvetlen operandus memóriába töltése, …

Page 40: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 40

A 8051 címzési módjai

Implicit: ACCRegiszter: akár forrás, akár cél operandus lehetDirekt: 8 bites memóriacímRegiszter-indirekt:

8 bites memóriacím, indirekt címzés a 16 bites DPTR-rel

Közvetlen operandus: általában 8 bites, de 11 ill. 16 bites abszolút cím ugráshoz, eljárás híváshoz

Page 41: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 41

Összefoglaló: 5.29. ábra.

Címzési mód Pentium 4 UltraSPARC III 8051Akkumulátor XKözvetlen X X XDirekt X XRegiszter X X XRegiszter indirekt X XIndex X XBázis-index X XVeremA bonyolult címzési módok tömörebb programokat tesznek lehetővé, de nehezítik a párhuzamosítást. Ha a párosítás nem történhet szabadon, akkor jobb, ha csak egy választási lehetőség van (egyszerűbb hatékony fordítóprogramot írni).

Page 42: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 42

Utasítástípusok • Adatmozgató (másoló) utasítások.• Diadikus: +, -, *, /, AND, OR, NOT, XOR, … • Monadikus: léptetés, forgatás, CLR, INC, NEG, …• Összehasonlítás, feltételes elágazás: Z, O, C, …• Eljáráshívás. Visszatérési cím:

- rögzített helyre (rossz),- az eljárás első szavába (jobb), - verembe (rekurzív eljárásokhoz is jó).

• Ciklusszervezés (5.30. ábra): számláló • Input/output (5.31-33. ábra):

- programozott I/O: tevékeny várakozás, 5.32. ábra,- megszakítás vezérelt I/O,- DMA I/O (5.33. ábra): cikluslopás.

Page 43: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 43

Ciklusszervezés (5.30. ábra)

i=1;L1: első utasítás

.

.

.utolsó utasítási = i + 1;if(i ≤ n) goto L1;

Végfeltételes ismétlés

i=1;L1: if(i > n) goto L2; első utasítás

.

.

.utolsó utasítási = i + 1;goto L1;

L2: …

Kezdő feltételes ismétlés

Page 44: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 44

Feltételes végrehajtás (5.51-52. ábra):if(R1 == 0) R2 = R3;

CMP R1, 0 BNE L1 MOV R2, R3L1: …

CMOVZ R2, R3, R1

if(R1 == 0) { R2 = R3; R4 = R5;} else { R6 = R7; R8 = R9;}

CMP R1, 0 BNE L1 MOV R2, R3 MOV R4, R5 BR L2L1: MOV R6, R7 MOV R8, R9L2: …

CMOVZ R2, R3, R1 CMOVZ R4, R5, R1 CMOVN R6, R7, R1 CMOVN R8, R9, R1

CMOVZ R2, R3, R1 csak akkor hajtja végre R2 = R3 -t, ha R1= 0.

Page 45: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 45

Predikáció, IA – 64 (5. 53. ábra)64 predikátum regiszter: 1 bites regiszterek, többnyire

párban. Az IA – 64 minden utasítása predikátumos.CMPEQ R1, R2, P4 beállítja P4-et és törli P5-öt, ha R1 = R2, különben P5-öt állítja be és P4-et törli.

if(R1 == R2) R3 = R4 + R5;else R6 = R4 – R5;

CMP R1, R2 BNE L1 MOV R3, R4 ADD R3, R5 BR L2L1: MOV R6, R4 SUB R6, R5L2: …

CMPEQ R1, R2, P4 <P4>ADD R3, R4, R5 <P5>SUB R6, R4, R5

Page 46: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 46

A Pentium 4 utasításai• Egész utasítások legnagyobb része: 5.34. ábra.• Egyéb utasítások (pl. lebegőpontosak).

Az UltraSPARC III utasításaiÖsszes egész utasítás: 5.35. ábra. A utasításnévben CC: beállítja a feltételkódot. ADD, ADDC, ADDCC, ADDCCC utasítások.Szimulált utasítások (5.36. ábra), pl.: MOV SRC,DST ≡ OR SRC,G0,DST

A 8051 utasításai (5.37. ábra)Bit utasítások, pl. a 43. bit 1-re állítása:SETB 43

Page 47: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 47

Kifejezés

A kifejezés szimbólumokból és konstansokból épül fel az alább ismertetendő műveletek segítségével. Kifejezés az operátorok, pszeudo operátorok operandus részére írható. Értékét a fordítóprogram határozza meg, és a kiszámított értéket alkalmazza operandusként. Szimbólumok értékén konstansok esetében természetesen a konstans értékét, címkék, változók esetében a hozzájuk tartozó címet – és nem a tartalmat – értjük.

Page 48: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 48

Kifejezés

A kifejezés értéke nemcsak számérték lehet, hanem minden, ami az utasításokban megengedett címzési módok valamelyikének megfelel. Pl. [BX] is kifejezés és értéke a BX regiszterrel történő indirekt hivatkozás, és ehhez természetesen a fordító programnak nem kell ismernie BX értékét.

Page 49: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 49

Természetesen előfordulhat, hogy egy kifejezés egyik szintaktikus helyzetben megengedett, a másikban nem, pl.:

mov ax,[BX]; [BX] megengedettmul [BX] ; [BX] hibás, demul WORD PTR [BX] ; megengedett

Egy kifejezés akkor megengedett, ha az értéke fordítási időben meghatározható és az adott szintaktikus helyzetben alkalmazható, pl. az adott utasítás lehetséges címzési módja megengedi. A megengedett kifejezés értékeket az egyes utasítások ismertetése során megadtuk.

Page 50: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 50

A műveletek csökkenő precedencia szerinti sorrendben:

1. ( ) és [ ] (zárójelek) továbbá < >: míg a ( ) zárójel pár a kifejezés kiértékelésében csupán a műveletek sorrendjét befolyásolja, addig a [ ] az indirekció előírására is szolgál. Ha a [ ] -en belüli kifejezésre nem alkalmazható indirekció, akkor a ( ) -lel egyenértékű– LENGTH változó: a változó-hoz tartozó adat

terület elemeinek száma – SIZE változó: a változó-hoz tartozó adat terület

hossza byte-okban– WIDTH R/F: az R rekord vagy az F (rekord) mező

szélessége bitekben– MASK F: az F (rekord) mező bitjein 1, másutt 0

Page 51: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 51

Pl.:v dw 20 dup (?)rec record x:3,y:4tabledw 10 dup (1,3 dup (?))str db ”12345”

esetén:mov ax,LENGTH v ; ax 20mov ax,LENGTH rec ; ax 1mov ax,LENGTH table ; ax 10

; a belső DUP ignorálva!mov ax,LENGTH str ; ax 1

; str egy elem

Page 52: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 52

v dw 20 dup (?)rec record x:3,y:4tabledw 10 dup (1,3 dup (?))str db ”12345”

esetén: mov ax,SIZE v ; ax 40

mov ax,SIZE rec ; ax 1mov ax,SIZE table ; ax 20

; a belső DUP ignorálvamov ax,SIZE str ; ax 1

; str bájtos

Page 53: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 53

v dw 20 dup (?)

rec record x:3,y:4

tabledw 10 dup (1,3 dup (?))

str db ”12345”

esetén:

mov ax,WIDTH rec ; ax 7mov ax,WIDTH x ; ax 3mov ax,MASK x ; ax 70H

Page 54: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 54

2. . (pont): struktúra mezőre hivatkozásnál használatos 3. : mező szélesség (rekord definícióban) és explicit

szegmens megadás (segment override prefix). Az explicit szegmens megadás az automatikus szegmens regiszter helyett más szegmens regiszter használatát írja elő, pl.:

mov ax, ES:[BX]; ax (ES:BX) címen lévő szó

Nem írható felül az automatikus szegmens regiszter az alábbi esetekben:– CS program memória címzésnél,– SS stack referens utasításokban (PUSH, POP, ...),– ES string kezelő utasításban DI mellett,

de az SI-hez tartozó DS átírható.

Page 55: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 55

4.– típus PTR cím: (típus átdefiniálás) ahol típus lehet BYTE, WORD, DWORD, QWORD, TBYTE, illetve NEAR, FAR (előre hivatkozás esetén fontos) és PROC. Pl.:

MUL BYTE PTR [BX] ; a [BX] címet

; byte-osan kell kezelni

– OFFSET kifejezés: a kifejezés OFFSET címe (a szegmens kezdetétől számított távolsága byte-okban)

– SEG kifejezés: a kifejezés szegmens címe (abban az értelemben, ahogy a szegmens regiszterben szokásos tárolni, tehát valós üzemmódban a szegmens tényleges kezdőcímének 16-oda)

Page 56: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 56

– TYPE változó: az elemek hossza byte-okban, ha változó, de

TYPE string = 1, TYPE konstans = 0, TYPE NEAR címke = -1, TYPE FAR címke = -2

JMP (TYPE cím) PTR [BX]

; NEAR vagy FAR ugrás attól függően, hogy cím

; közeli vagy távoli címke

– ... THIS típus: a program szöveg adott pontján adott típusú szimbólum létrehozása

Page 57: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 57

Pl.:

ADATB EQU THIS BYTE

; BYTE típusú változó, helyfoglalás nélkül

ADATW dw 1234H

; ez az adat ADATB-vel byte-osan érhető el

. . .

mov al,BYTE PTR ADATW ; al 34H, helyes

mov al,ADATB ; al 34H, helyes

mov ah,ADATB+1 ; ah 12H, helyes

Emlékeztetünk arra, hogy szavak tárolásakor az alacsonyabb helyértékű byte kerül az alacsonyabb címre!

Page 58: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 58

5.– LOW kifejezés: egy szó alsó (alacsonyabb

helyértékű) byte-ja– HIGH kifejezés: egy szó felső (magasabb

helyértékű) byte-jaPl.:ADATW dw 1234H

mov al,LOW ADATW ; al 34Hmov ah,HIGH ADATW ; ah 12H

6. Előjelek:+ : pozitív előjel– : negatív előjel

Page 59: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 59

7. Multiplikatív műveletek: : szorzás– / : osztás– MOD: (modulo) a legkisebb nem negatív maradék, pl.:

mov al,20 MOD 16 ; al 4 – kifejezés SHL lépés:

kifejezés léptetése balra lépés bittel – kifejezés SHR lépés:

kifejezés léptetése jobbra lépés bittel lépés is lehet kifejezés!

A kifejezésben előforduló műveleti jelek (SHL, SHR, és a később előforduló NOT, AND, OR, és XOR) nem tévesztendők össze a velük azonos alakú műveleti kódokkal: az előbbiket a fordító program, az utóbbikat a futó program hajtja végre!

Page 60: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 60

8. Additív műveletek:– + : összeadás– - : kivonás

9. Relációs operátorok (igaz=-1, hamis=0): általában feltételes fordítással kapcsolatban fordulnak elő– EQ : = // -1 EQ 0FFFFFFFFH igaz– NE : // -1 NE 0FFFFFFFFH hamis– LT : 33 bites argumentumok!– LE : 1 GT -1 igaz– GT : 1 GT 0FFFFFFFFH hamis– GE :

Page 61: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 61

10. NOT : bitenkénti negálás

11. AND : bitenkénti és művelet

12. Bitenkénti vagy és kizáró vagy művelet:– OR : bitenkénti vagy művelet– XOR : bitenkénti kizáró vagy művelet

Page 62: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 62

13. – SHORT : 8 bites IP relatív címzés kikényszerítése– .TYPE kifejezés:

0, ha kifejezés érvénytelen, különben:

Bit sorszám

Ha a bit = 0 Ha a bit = 1

0 Nem a programmal kapcsolatos

A programmal kapcsolatos

1 Nem adattal kapcsolatos Adattal kapcsolatos

5 Nem definiált Definiált

7 Lokális v. PUBLIC EXTERN

Page 63: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 63

Feltételes fordításA fordító programok általában – így az assembler is –

feltételes fordítási lehetőséget biztosít. Ez azt jelenti, hogy a program bizonyos részeit csak abban az esetben fordítja le, ha – a fordítóprogram számára ellenőrizhető – feltétel igaz illetve hamis.

IFxx feltétel

... ; lefordul, ha a feltétel igaz

ELSE ; el is maradhat

... ; lefordul, ha a feltétel hamis

ENDIF

Page 64: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 64

IF kifejezés ; igaz, ha ; kifejezés0

IFE kifejezés ; igaz, ha ; kifejezés=0

Pl.:IF debug GT 20

call debug1ELSE

call debug2ENDIF

Page 65: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 65

IF1 ; igaz a fordítás ; első menetében

IF2 ; igaz a fordítás ; második menetében

IFDEFSzimbólum ; igaz, ha Szimbólum ; definiált

IFNDEF Szimbólum ; igaz, ha Szimbólum ; nem definiált

Pl. Csak akkor definiáljuk buff-t, ha a hossza ismert:IFDEFbuff_lenbuff db buff_len dup (?)ENDIF

Page 66: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 66

IFB arg ; igaz, ha

; arg üres (blank)

IFNB arg ; igaz, ha

; arg nem üres

IFIDNarg1,arg2 ; igaz, ha

; arg1arg2 teljesül

IFDIFarg1,arg2 ; igaz, ha

; arg1arg2 nem teljesül

Page 67: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 67

FeladatokMiért kitüntetett szint a gépi utasítások szintje (ISA)?Mikor jó egy gép ISA szintje?Mi a különbség a felhasználói (user) és a kernel mód

között?Mit jelent az igazítás 4 bájtos szavak tárolásánál?Mi az igazítás előnye?Mit jelent a memória szemantika?Milyen hardver megoldásokat ismer a memória

műveletek végrehajtási sorrendjére vonatkozóan?Mi a SYNC utasítás hatása?Miért van szükség a SYNC utasításra?

Page 68: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 68

FeladatokMondjon olyan regisztert, amely a mikro utasítások

szintjén és ISA szinten is látszik!Mondjon olyan regisztert, amely csak ISA szinten

látszik!Mondjon olyan regisztert, amely csak kernel módban

érhető el!Milyen utasítás típusokat ismer?Melyek a Pentium 4 processzor legfontosabb elődjei?Milyen üzemmódjai vannak a Pentium 4-nek?Milyen a Pentium 4 memória szervezése?Milyen regiszterei vannak a Pentium 4-nek?Mit jelent a Little endian tárolási mód?

Page 69: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 69

FeladatokMit jelent a Load/store architektúra?Milyen az UltraSPARC III memória szervezése?Milyen regiszterei vannak az UltraSPARC III-nak?Mit tud az UltraSPARC III G0 regiszteréről?Mi a CWP (Current Window Pointer) szerepe?Hogy működik az UltraSPARC III regiszter ablak

technikája?Hány regiszter készlete van a 8051-nek?Hol helyezkednek el a 8051 regiszterei?Mire jó a bit-címezhető memória?Írja le a 8051 RAM-jának a szerkezetét!Mire szolgál a 8051 IE, IP, TCON és TMOD

regisztere?

Page 70: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 70

FeladatokHány címes utasítások lehetségesek? Adjon

mindegyikre példát!Milyen címzési módokat ismer? Részletezze ezeket!Mit jelent a fordított lengyel jelölés?Milyen előnyei vannak a postfix jelölésnek?Írja át postfix alakúra az alábbi formulákat!A+B, A+B+C, A+B*C, A*B+C.

Írja át infix alakúra az alábbi postfix formulákat!AB+, AB–C/, AB*C+, AB*CD/E+–.

Hogy működik Dijkstra algoritmusa?Hogy értékelhetők ki a postfix alakú formulák?

Page 71: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 71

FeladatokMik az ISA szint fő tervezési szempontjai?Hogy viszonyulhat egymáshoz az utasítás és a

memória cella hossza?Mit értünk műveleti kód kiterjesztésen?Mit nevezünk menekülő kódnak?Mi az ortogonalitási elv?Milyen utasítás formájú 3 címes gépet tervezne?Milyen utasítás formájú 2 címes gépet tervezne?Teljesül-e az ortogonalitási elv a Pentium 4-en?Milyen utasítás formái vannak a Pentium 4-nek?Mire szolgál a prefix bájt a Pentium 4-en?Mire szolgál a címzési mód bájt a Pentium 4-en?Mire szolgál a SIB bájt a Pentium 4-en?

Page 72: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 72

FeladatokTeljesül-e az ortogonalitási elv az UltraSPARC III-on?Milyen utasítás formái vannak az UltraSPARC III-nak?Mi a különbség az UltraSPARC III ADD, ADDC, ADDCC és ADDCCC utasításai között?

Milyen formátumú LOAD utasításai vannak az UltraSPARC III-nak?

Hogy adható meg 32 bites közvetlen adat az UltraSPARC III-on?

Milyen formátumú CALL utasítása van az UltraSPARC III-nak?

Page 73: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 73

FeladatokTeljesül-e az ortogonalitási elv a 8051-en?Milyen utasítás formái vannak a 8051-nek?Milyen formátumú ugró utasításai vannak a 8051-nek?Hogy érhető el 256-nál magasabb memória cím a

8051-en?

Page 74: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 74

FeladatokMilyen utasítás típusokat ismer?Mondjon diadikus/monadikus utasításokat!Hogy néz ki a vég-/kezdőfeltételes ciklus?Mit értünk feltételes végrehajtáson?Mi a feltételes végrehajtás előnye?Mit értünk predikáción?Hogy küszöböli ki a feltételes végrehajtás és a

predikáció a csővezeték elakadását? Jelent-e ez késleltetést a program futásában?

Page 75: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 75

FeladatokMit értünk kifejezésen?Mit értünk kifejezés értékén?Mikor kerül meghatározásra a kifejezés értéke?Szerepelhet-e regiszter egy kifejezésben?Befolyásolhatja-e egy regiszter értéke egy kifejezés

értékét? Mikor mondjuk, hogy egy kifejezés megengedett?Ha A és B szimbólum, akkor lehet-e helyes kifejezésA+B, A–B, A*B, A/B? Milyen esetekben?

Ha A és B változónév, akkor lehet-e helyes kifejezésA+B, A–B, A*B, A/B?

Lehet-e helyes kifejezés A+B–C, ha A+B nem helyes kifejezés?

Page 76: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 76

Feladatoka dw 5 dup (1,2)b recordx:3,y:4,z:5c dw 10 dup (1,2 dup (3))d db ”szoveg”Alkalmazza a, b, c, d, x, y,és z-re a LENGTH, SIZE, WIDTH, MASK, TYPE és a NOT MASK, operátort (ha lehet)! Milyen eredményeket kap?

Melyik címet jelenti az ES:5[BX+DI] hivatkozás?Miért hibás a

MUL ES:[DI]utasítás? Hogy javítható ki?

Page 77: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 77

Feladatoka db 12Hb db 23Hc dw ?esetén, mi lesz AX, BL és BH tartalma a

mov AX, word ptr amov c, AXmov BL, low cmov BH, byte ptr c

utasítások után?

Page 78: Memória modellek Memória szemantika : STORE A  -t  közvetlenül követő  LOAD  A  mit  ad vissza ?

Máté: Architektúrák 9. előadás 78

Feladatoka = 7b = 2c equ a shl b

mov cx, not c mod 8 or besetén, mi lesz cx tartalma?Mit értünk feltételes fordításon?Milyen feltételes fordítási szerkezeteket ismer?Mikor értékelődik ki a feltételes fordítás feltétele?Mire szolgál a feltételes fordítás?Milyen feltételes fordítási utasításokat ismer?Mire szolgál az IF1 feltételes fordítási utasítás?Mire szolgál az IFB feltételes fordítási utasítás?