T - PowerPoint PPT Presentation

About This Presentation
Title:

T

Description:

Pl.: sym1 equ 100 sym2 equ 200 txt equ Ez egy sz veg kif macro exp, val ... msg1 db syntax error Egy jabb h v s s hat sa: ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 70
Provided by: usz99
Category:
Tags: syntax

less

Transcript and Presenter's Notes

Title: T


1
  • Történeti áttekintés
  • Kezdetben kevés, egyszeru utasítás.
  • Késobb sok, egyre összetettebb utasítás.
  • IBM 360-as család. Lefelé kompatibilis, csak a
    nagyobb gépek hajtják végre hardveresen az
    utasításokat (gyors), a kicsik interpretálnak
    (olcsó).
  • Interpretálás (mikroprogramozás) elonyei
  • hibásan interpretált utasítások könnyu javítása,
  • új utasítások egyszeru hozzáadása,
  • strukturált felépítés összetett utasítások
    hatékony fejlesztése.

2
  • Hetvenes évek vége
  • a csak olvasásra használható gyors memóriák
    (vezérlotárak ROM Read Only Memory)
    megjelenése és beépülése a CPU-ba.
  • az elso 8 bites processzorok
  • - Motorola 68000 egyszeru utasításokkal nagy
  • interpretert épít (siker),
  • - Zilog 8000 bonyolult hardver utasításokat
  • (kudarc).

3
  • A nyolcvanas évek elejétol A központi memória
    sebessége csaknem elérte a vezérlo tárak
    sebességét.
  • RISC (Reduced Instruction Set Computer -
    csökkentett utasításkészletu számítógép) SPARC,
    DEC Alpha.
  • Cél minél gyorsabban indítani és átlapolni a
    gyors, egyszeru utasításokat. Az utasítások
    általában két regiszteren hajtanak végre
    muveletet, az eredményt egy harmadik regiszterbe
    tárolják.
  • CISC (Complex Instruction Set Computer, összetett
    utasításkészletu számítógép) IBM nagy gépek,
    VAX, . Összetett, és lassabb utasítások.

4
  • RISC tervezési elvei
  • hardveres (nem mikroprogramozott) utasítások,
  • az utasítások indítási sebességének
    maximalizálása,
  • könnyen dekódolható utasítások,
  • memóriához fordulás csak betöltés (load) és
    tárolás (store) esetén.
  • Sok regiszter kell!
  • Miért nem nyert a RISC?
  • Kompatibilitás az elveket az Intel is részben
    átveszi (486-tól RISC mag).

5
  • Pentium II CPU mikroarchitektúrája (4.46. ábra)
  • Magas szintu csovezeték Betölto/Dekódoló az
    utasításokat szétdarabolja, a RISC szeru
    mikromuveleteket ROB-ba teszi (ROB ReOrder
    Buffer mikromuvelet tár terület).
  • Elküldo/Végrehajtó a ROB-ban lévo utasításokat
    esetleg eltéro sorrendben végrehajtja.
  • Befejezo sorrendben befejezi az összes
    mikromuvelet végrehajtását, frissíti a
    regisztereket.

6
Betöltö/Dekódoló
  • IFU0 ha a puffere üres, 32 bájtos gyorsító sort
    tölt be.
  • IFU1 legfeljebb 30 utasítás határát megkeresi.
  • IFU2 beteszi egy sorba az utasításokat.
  • ID0 az egyszeru utasításokat ketto, a többit a
    harmadik dekódolja (mint Mic-4),
    mikromuveletenként
  • muveleti kód,
  • két forrás és
  • egy cél regiszter.

4.47. ábra
7
4.47. ábra
  • ID1, statikus dinamikus elágazás jövendölés (4
    bites elozmény figyelés).

8
  • RAT 40 firkáló regiszter WAR és WAW feloldására
  • ROB (ReOrder Buffer) maximum 3 mikromuveletet
    fogad ciklusonként.

9
Elküldo/Végrehajtó Ütemezi és végrehajtja a
mikromuveleteket, feloldja a függoségeket és
eroforrás igény ütközéseket. Egy ciklusban öt
muvelet is kiosztható. Foglalóhely 20 elemu sor
azoknak a muveleteknek, amelyeknek minden
operandusa megvan. Portok ezekhez kapcsolódnak a
végrehajtó egységek. Ha több muvelet osztható ki
egy végrehajtó egységnek, akkor bonyolult
algoritmus dönt, pl. egy elágazás végrehajtása
elsobbséget élvez egy aritmetikai muvelettel
szemben. Portonként sorbaállás lehetséges.
Foglalóhely 0. port 1. port 2. port 3. port 4.
port
10
  • Elküldo/Végrehajtó (4.48. ábra)

11
  • Befejezo (4.46. ábra)
  • Ez küldi az eredményeket a megfelelo helyre
    regiszterbe és az Elküldo/Végrehajtóba, ahol az
    eredményre várnak RAW függoség esetén. Az
    utasításokat a programban lévo sorrendben fejezi
    be, még akkor is, ha a végrehajtás sorrendje
    ettol eltért.A feltételesen végrehajtott
    utasítások eredményét eldobja, ha ezeket az
    utasításokat nem kellett volna végrehajtani.

12
  • Pentium II CPU mikroarchitektúrája (4.46. ábra)

13
  • UltraSPARC II CPU mikroarchitektúrája
  • A SPARC sorozat RISC elgondoláson alapul. A
    legtöbb utasításnak két forrás és egy cél
    regisztere van.
  • PREFETCH utasítás feltételezett betöltésre, nem
    okoz gyorsító sor cserét gyorsító tár hiánykor.
  • 2 bites elágazás jövendölo statikus elágazás
    jövendölés.

14
Elore betölto/Elküldo (4.49. ábra) ciklusonként
négy utasítást tölt be egy fél gyorsító sort,
és dekódolja. Dekódoló Néhány irányító bitet
ad minden utasításhoz, ezzel a késobbi folyamatot
gyorsítja. Maximum 12 elemu sort épít. A kiosztás
sorrendben történik.
15
  • Csoportosító logika egyszerre maximum 4 (2 fix-
    és 2 lebegopontos) utasítást tud kiosztani a
    sorból. A kiosztás és befejezés a sorrendtol
    eltéro lehet.
  • Az egész és lebegopontos egység tejesen
    független.
  • Betölto/Tároló írás átereszto. A gyorsító tár
    hiány miatti várakozás elkerülésére külön sor a
    függoben lévo LOAD-ok és STORE-ok számára.

Csoportosító logika
16
  • Az UltraSPARC II mikroarchitektúrája (4.49. ábra)

Memória illeszto egység
Fo memória
2. szintu gyorsító
Külso gyorsító egység
Elore betölto/Elküldo
1. szintu I gyorsító tár
Dekódoló
Csoportosító logika
17
9 szakaszos csovezeték (4.50. ábra)
  • max. 4 utasítás az I-gyorsítóból,
  • irányító bitek az utasításokhoz,
  • kioszt annyi utasítást, ahányat tud
  • csapda kezelés
  • regiszterekbe írás

18
  • 4 - 7. szakasz
  • a fix pontos utasítások 1 ciklus alatt
    végrehajtódnak 3 üres szakasz,
  • LOAD és STORE még dolgozik a gyorsító tár
    szakaszban 2 üres szakasz,
  • a lebegopontos utasítások a regiszterek
    eléréséhez általában 1 szakaszt igényelnek
    3-at a végrehajtáshoz.

19
  • picoJava II CPU mikroarchitektúrája (4.51. ábra)
  • Nem szuperskaláris a mikromuveleteket a kiosztás
    sorrendjében hajtja végre és fejezi be (a fo cél
    az volt, hogy olcsó legyen).
  • Regiszter oszlop 64 db 32 bites regiszter, a
    verem tetején lévo szavakat tartalmazza.
  • Automatikus eljárás (cselezo dribbling) a
    regiszter oszlop ne legyen túl tele vagy túl
    üres.
  • Ciklikus puffer 2 mutatóval nem kell másolgatni.

20
picoJava II CPU mikro-architektúrája (4.51. ábra)
A regiszter oszlop közvetlenül, a D gyorsító egy
ciklus késleltetéssel érheto el.
21
  • picoJava II csovezetéke (4.52. ábra)
  • Nem szuperskaláris, a mikromuveleteket
  • a kiosztás sorrendjében hajtja végre.
  • Betöltés egyszerre 8 bájt az I gyorsítótárból.
  • Dekódolás RISC jellegu, két forrás és egy cél
    regisztert tartalmazó mikroutasításokat állít
    eloa CISC utasítás folyamból.
  • Operandus betöltés a verembol (regiszter
    oszlopból).
  • Utasítás végrehajtás.
  • Ha kell, a D gyorsítóba írás.
  • Eredmények verembe írása, ha kell.

22
  • Utasítás összevonás, pl. nkm (4.53. ábra)

m
k


k



n

m

km


k



n

m

k


k



n

m



k



n

m

SP?
8
7
6
5
4
3
2
1
0


k



n

m



k



km

m



k



km

m

Összevont utasítás után
ILOAD k után
ILOAD m után
IADD után
ISTORE n után
Kezdetben
Kezdetben
A dekódoló egyetlen mikromuveletté vonja össze.
23
  • Utasítás csoportok (4.54. ábra)

Csoport Leírás Példa
NF Nem összevonható utasítások GOTO
LV Betesz egy szót a verembe ILOAD
MEM Egy szót a verembol a memóriába tesz ISTORE
BG1 Egy verem operandusú utasítások IFEQ
BG2 Két verem operandusú utasítások IF_CMPEQ
OP Két operandusú utasítások eredménnyel IADD
JVM-nek több utasítása van, mint IJVM-nek! Több
utasítás tartozik egy csoportba.
24
  • Utasítások összevonása
  • A dekódoló figyeli, hogy a sorozat megfelel-e
    egy legfeljebb 4 hosszú mintának (4.55. ábra). Ha
    megfelel, akkor a sorozatot egyetlen
    mikroutasítással helyettesíti. 74 bites
    mikromuveleteket oszt ki, ezek legtöbbje egy
    kódot és három regisztert tartalmaz, és egy
    ciklusban végrehajtható.

Utasítás sorozat Utasítás sorozat Utasítás sorozat Utasítás sorozat Példa
LV LV OP MEM ILOAD, ILOAD, IADD, ISTORE
LV LV OP ILOAD, ILOAD, IADD
LV LV BG2 ILOAD, ILOAD, IF_CMPEQ
LV BG1 ILOAD, IFEQ
LV BG2 ILOAD, IF_CMPEQ
LV MEM ILOAD, ISTORE
OP MEM IADD, ISTORE
25
  • Elágazás jövendölés nem lesz elágazás!
  • Inkább olcsó, mint bonyolult hardver!

26
  • Összehasonlítás
  • Pentium II CISC gép
  • egy CISC utasítás ? több RISC mikroutasítás
  • UltraSPARC II RISC gép
  • picoJava II verem gép, sok memória hivatkozás
  • több CISC utasítás ? egy RISC mikroutasítás

27
  • Makró és blokk ismétlés
  • Makró definíció
  • M_név MACRO fpar1,fpar2...
  • makró fej (kezdet)
  • ... makró törzs
  • ENDM makró vége
  • fpar1,fpar2... formális paraméterek vagy
    egyszeruen paraméterek.
  • A makró definíció nem lesz része a lefordított
    programnak, csupán azt határozza meg, hogy késobb
    mit kell a makró hívás helyére beírni (makró
    kifejtés, helyettesítés).
  • A makró törzsön belül elofordulhat makró hívás és
    másik makró definíció is.

28
  • Makró hívás
  • M_név apar1,apar2...
  • apar1,apar2... aktuális paraméterek/argumentumok.
  • A muveleti kód helyére írt M_név hatására a
    korábban megadott definíció szerint megtörténik a
    makró helyettesítés, más néven makró kifejtés. Ez
    a makró törzs bemásolását jelenti, miközben az
    összes paraméter összes elofordulása a megfelelo
    argumentummal helyettesítodik. A helyettesítés
    szövegesen történik, azaz minden paraméter mint
    szöveg helyére a megfelelo argumentum mint
    szöveg kerül.
  • A helyettesítés nem rekurzív. Makró hívás
    argumentuma sem lehet makró hívás.
  • Az argumentumnak megfelelo formális paraméternek
    lehet olyan elofordulása, amely a késobbiek során
    makró hívást eredményez.

29
  • Dupla szavas összeadás (DXAX)?(DXAX)(CXBX)

Eljárás deklaráció EDADD PROC NEAR ADD AX,BX ADC DX,CX RET EDADD ENDP Makró definíció MDADD MACRO ADD AX,BX ADC DX,CX ENDM
30
  • Ha a programban valahol dupla szavas összeadást
    kell
  • végezzünk, akkor hívnunk kell az eljárást
    illetve a makrót

Eljárás hívás CALL EDADD Makró hívás MDADD
Futás közben felhívásra kerül az EDADD eljárás Fordítás közben megtörténik a makró helyettesítés ADD AX,BX ADC DX,CX Futás közben ez a két utasítás kerül csak végrehajtásra.
31
  • Látható, hogy eljárás esetén kettovel több
    utasítást kell végrehajtanunk, mint makró
    esetében (CALL EDADD és RET).
  • Még nagyobb különbséget tapasztalunk, ha (CXBX)
    helyett paraméterként kívánjuk megadni az egyik
    összeadandót

32
Eljárás deklaráció EDADD2 PROC NEAR PUSH BP MOV BP,SP ADD AX,4BP ADC DX,6BP POP BP RET 4 EDADD ENDP Ha SI az összeadandónk címét tartalmazza, akkor a felhívás PUSH 2SI PUSH SI CALL EDADD2 Futás közben végrehajtásra kerül a paraméter átadás, az eljárás hívás, az eljárás összesen 9 utasítás
33
Makró definíció MDADD2 MACRO P IFB ?P? ADD AX,BX ADC DX,CX ELSE ADD AX,P ADC DX,P2 ENDIF ENDM Makró hívás MDADD2 SI Fordítás közben a hívás az ADD AX,SI ADC DX,SI2 utasításokra cserélodik, futás közben csak ez a két utasítás kerül végrehajtásra. MDADD2 hatása ADD AX,BX ADC DX,CX
  • Most sem része a makró definíció a lefordított
    programnak.

34
  • Paraméter másutt is elofordulhat a makró
    törzsben, nemcsak az operandus részen, pl.
  • PL macro p1,P2
  • mov ax,p1
  • P2 p1
  • endm
  • PL Adat, INC
  • hatása
  • mov ax,Adat
  • INC Adat

35
  • A , , ! karakterek továbbá a ltgt és speciális
    szerepet töltenek be makró kifejtéskor.
  • (helyettesítés operátor)
  • ha a paraméter helyettesített értéke része
    egy szónak
  • idézeten belüli helyettesítés
  • errgen macro y, x
  • erry db Error y x
  • endm
  • errgen 5, ltUnreadable diskgt
  • hatása
  • err5 db Error 5 Unreadable disk

36
  • ltgt (literál szöveg operátor) Ha aktuális
    paraméter szóközt vagy ,-t is tartalmaz. Az elozo
    példa eredménye ltgt nélkül
  • errgen 5, Unreadable disk
  • kifejtve
  • err5 db Error 5 Unreadable
  • adat macro p
  • db p
  • endm
  • adat ltabc,13,10,0gt
  • adat abc,13,10,0
  • kifejtve
  • db abc,13,10,0
  • db abc

37
  • ! (literál karakter operátor) Az utána következo
    karaktert makró kifejtéskor közönséges
    karakterként kell kezelni. Pl. a korábbi errgen
    makró
  • errgen 103, ltExpression !gt 255gt
  • hívásának hatása
  • err103 db Error 103 Expression gt 255
  • de
  • errgen 103, ltExpression gt 255gt
  • hívásának hatása
  • err103 db Error 103 Expression

38
  • (kifejezés operátor) Az utána lévo argumentum
    (kifejezés is lehet) értéke és nem a szövege
    lesz az aktuális paraméter. Pl.
  • sym1 equ 100
  • sym2 equ 200
  • txt equ Ez egy szöveg
  • kif macro exp, val
  • db exp val
  • endm
  • kif ltsym1sym2gt, (sym1sym2)
  • kif txt, txt
  • db sym1sym2 300
  • db txt Ez egy szöveg

39
  • Az alábbi példa a használatán kívül a makró
    törzsön belüli makró hívást is bemutatja
  • s 0
  • ErrMsg MACRO text
  • s s1
  • Msg s,text
  • ENDM
  • Msg MACRO sz,str
  • msgsz db str
  • ENDM

40
s 0 ErrMsg MACRO text s s1 Msg s,text ENDM Msg MACRO sz,str msgsz db str ENDM
  • ErrMsg syntax error
  • makró hívás hatására bemásolásra kerül (.LALL
    hatására látszik a listán) az
  • s s1
  • Msg s,syntax error
  • szöveg. s értéke itt 1-re változik. Újabb makró
    hívás (Msg). A s paraméter az értékére (1)
    cserélodik, majd kifejtésre kerül ez a makró is,
    ebbol kialakul
  • msg1 db syntax error

41
s 0 ErrMsg MACRO text s s1 Msg s,text ENDM Msg MACRO sz,str msgsz db str ENDM
  • Egy újabb hívás és hatása
  • ErrMsg invalid operand
  • msg2 db invalid operand

42
  • (makró kommentár) A makró definíció
    megjegyzéseinek kezdetét jelzi. A utáni
    megjegyzés a makró kifejtés listájában nem
    jelenik meg.

43
  • LOCAL c1,c2...
  • c1, c2, ... minden makró híváskor más, ??xxxx
    alakú szimbólumra cserélodik, ahol xxxx a makró
    generátor által meghatározott hexadecimális szám.
    A LOCAL operátort közvetlenül a makró fej utáni
    sorba kell írni.
  • KOPOG macro n
  • LOCAL ujra
  • mov cx,n
  • ujra KOPP
  • loop ujra
  • endm
  • Ha a programban többször hívnánk a KOPOG makrót,
    akkor a LOCAL operátor nélkül az ujra címke
    többször lenne definiálva.

44
  • Makró definíció belsejében lehet másik makró
    definíció is. A belso makró definíció csak a
    külso makró meghívása után jut érvényre, válik
    láthatóvá. Pl.
  • shifts macro OPNAME makrót
    definiáló makró
  • OPNAMES MACRO OPERANDUS,N
  • mov cl, N
  • OPNAME OPERANDUS,cl
  • ENDM
  • endm

45
  • shifts macro OPNAME makrót
    definiáló makró
  • OPNAMES MACRO OPERANDUS,N
  • mov cl, N
  • OPNAME OPERANDUS,cl
  • ENDM
  • endm
  • Ha ezt a makrót felhívjuk pl.
  • shifts ROR
  • akkor a
  • RORS MACRO OPERANDUS,N
  • mov cl, N
  • ROR OPERANDUS,cl
  • ENDM
  • makró definíció generálódik.

46
  • RORS MACRO OPERANDUS,N
  • mov cl, N
  • ROR OPERANDUS,cl
  • ENDM
  • Mostantól meghívható a RORS makró is, pl.
  • RORS AX, 5
  • aminek a hatása
  • mov cl, 5
  • ROR AX,cl

47
  • Makró definíció belsejében meghívható az éppen
    definiálás alatt lévo makró is (a makró hívás
    ezáltal rekurzívvá válik).
  • PUSHALL macro reg1,reg2,reg3,reg4,reg5
  • IFNB ltreg1gt ha a paraméter nem üres
  • push reg1 az elso regiszter mentése
  • PUSHALL reg2,reg3,reg4,reg5 rekurzió
  • ENDIF
  • ENDM
  • Most pl. a
  • PUSHALL ax, bx, cx
  • makró hívás hatása
  • push ax
  • push bx
  • push cx

48
  • PUSHALL macro reg1,reg2,reg3,reg4,reg5
  • IFNB ltreg1gt ha a paraméter nem üres
  • push reg1 az elso regiszter mentése
  • PUSHALL reg2,reg3,reg4,reg5 rekurzió
  • ENDIF
  • ENDM
  • PUSHALL ax, bx, cx
  • makró hívás hatása
  • push ax
  • PUSHALL bx, cx
  • az újabb hívás hatása
  • push bx
  • PUSHALL cx
  • az újabb hívás hatása
  • push cx
  • PUSHALL
  • ennek hatására nem generálódik semmi.

49
  • FL_CALLELJ 0
  • CALLELJ macro Eljárást beépíto és felhívó
    makró
  • LOCAL FIRST nem lenne fontos
  • IF FL_CALLELJ a 2. hívástól igaz
  • call Elj elég felhívni az eljárást
  • EXITM makró helyettesítés vége
  • ENDIF
  • FL_CALLELJ 1 csak az elso híváskor
  • JMP FIRST jut érvényre
  • Elj proc eljárás deklaráció
  • ...
  • ret
  • Elj endp
  • FIRST call Elj az eljárás felhívása
  • endm

50
  • Az elso CALLELJ hívás hatására az
  • FL_CALLELJ 1
  • JMP ??0000
  • Elj proc
  • ...
  • ret
  • Elj endp
  • ??0000 call Elj
  • utasítások generálódnak (??0000 a FIRST-bol
    keletkezett).

51
  • A további CALLELJ hívások esetén csak egyetlen
    utasítás, a
  • call Elj
  • utasítás generálódik.
  • A megoldás elonye, hogy az eljárás csak akkor
    része a programnak, ha a program tartalmazza az
    eljárás felhívását is, és mégsem kell törodjünk
    azzal, hogy hozzá kell-e szerkesztenünk a
    programhoz vagy se.

52
  • Megváltoztathatunk egy makró definíciót azáltal,
    hogy újra definiáljuk.
  • Makró definíción belül elofordulhat másik makró
    definíció.
  • E két lehetoség kombinációjából adódik, hogy a
    makró definíción belül megadhatunk ugyanarra a
    makró névre egy másik definíciót, ezáltal
    készítheto olyan makró, amely átdefiniálja
    önmagát.
  • Az önmagát átdefiniáló makrók esetében a belso és
    külso definíciót lezáró ENDM utasítások között
    egyetlen utasítás sem szerepelhet még kommentár
    sem!

53
  • Önmagát átdefiniáló makró (az elozo feladat
    másik megoldása)
  • CALLELJ2 macro külso makró definíció
  • jmp FIRST
  • Elj2 proc eljárás deklaráció
  • ...
  • ret
  • Elj2 endp
  • FIRST call Elj2 eljárás hívás
  • CALLELJ2 MACRO belso makró definíció
  • call Elj2 eljárás hívás
  • ENDM belso makró definíció vége
  • endm külso makró definíció vége

54
  • CALLELJ2 elso hívásakor a kifejtés eredménye
  • jmp FIRST
  • Elj2 proc eljárás deklaráció
  • ...
  • ret
  • Elj2 endp
  • FIRST call Elj2 eljárás hívás
  • CALLELJ2 MACRO belso makró definíció
  • call Elj2 eljárás hívás
  • ENDM belso makró definíció vége

55
  • A kifejtés CALLELJ2 újabb definícióját
    tartalmazza, ez felülírja az eredeti definíciót,
    és a továbbiak során ez a definíció érvényes. Ez
    alapján a késobbi CALLELJ2 hívások esetén
  • call Elj2
  • a kifejtés eredménye.
  • Megjegyezzük, hogy most is szerencsésebb lett
    volna a FIRST címkét lokálissá tenni. Igaz, hogy
    csak egyszer generálódik, de így a CALLELJ2 makró
    használójának tudnia kell, hogy a FIRST címke már
    foglalt!

56
  • Ha egy M_név makró definíciójára nincs szükség a
    továbbiak során, akkor a
  • PURGE M_név
  • pszeudo utasítással kitörölhetjük.

57
  • Blokk ismétlés
  • Nemcsak a blokk definíciójának kezdetét jelölik
    ki, hanem a kifejtést (hívást) is eloírják. A
    program más részérol nem is hívhatók.
  • Blokk ismétlés kifejezés-szer
  • REPT kifejezés
  • ... ez a rész ismétlodik
  • ENDM

58
  • Pl. a korábban ismertetett kopogást így is
    megoldhattuk volna
  • REPT N
  • KOPP
  • ENDM
  • Ha pl. N3, akkor ennek a hatására a
  • KOPP
  • KOPP
  • KOPP
  • makró hívások generálódnak.
  • Megjegyzés Most N nem lehet változó fordítási
    idoben ismert kell legyen az értéke!

59
  • Blokk ismétlés argumentum lista szerint
  • IRP par, ltarg1,arg2...gt
  • ... ez a rész többször bemásolásra ...
    kerül úgy, hogy par rendre
  • ... felveszi az arg1,arg2... értéket
  • ENDM
  • IRP x, lt1,2,3gt
  • db x
  • ENDM
  • db 1
  • db 2
  • db 3

60
  • Blokk ismétlés string alapján
  • IRPC par,string
  • ... ez a rész kerül többször bemásolásra
    úgy,
  • ... hogy par rendre felveszi
  • ... a string karaktereit
  • ENDM
  • Ezt a string-et nem kell idézojelek közé tenni
    (újabb ismétlés jelentene). Ha a string-en belül
    pl. szóköz vagy , is elofordul, akkor ltgt jelek
    közé kell tenni.
  • Az elozo feladatot így is megoldhattuk volna
  • IRPC x,123
  • db x
  • ENDM

61
  • Másik példa
  • IRPC x,ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • db x nagy betuk
  • db x20h kis betuk
  • ENDM
  • Fontos az jel, nélküle x nem paraméter, hanem
    string lenne!

62
  • Makró definíció tartalmazhat blokk ismétlést, és
    blokk ismétlés is tartalmazhat makró definíciót
    vagy makró hívást.
  • Pl. A bit lépteto és forgató utasítás
    kiterjesztésnek egy újabb megoldása
  • makrót definiáló blokkismétlés
  • IRP OP,ltRCR,RCL,ROR,ROL,SAR,SALgt
  • OPS MACRO OPERANDUS,N
  • mov cl, N
  • OP OPERANDUS,cl
  • ENDM
  • ENDM
  • Ennek a megoldásnak elonye, hogy nem kell külön
    meghívnunk a külso makrót az egyes utasításokkal,
    mert ezt elvégzi helyettünk az IRP blokk ismétlés.

63
  • Feladatok
  • Mit nevezünk alap blokknak?
  • Mit nevezünk emelésnek?
  • Mit nevezünk feltételezett végrehajtásnak?
  • Milyen mellékhatásai lehetnek a feltételezett
    végrehajtásnak?
  • Mi a SPECULATIVE_LOAD lényege?
  • Mi a mérgezés bit?
  • Hogy muködik a halmaz kezelésu gyorsítótár?
  • Mit jelent az írás áteresztés (write through)?
  • Mit jelent a késleltetett írás?
  • Mit jelent az írás allokálás?

64
  • Feladatok
  • Minek a rövidítése a RISC?
  • Minek a rövidítése a CISC?
  • Mi jellemzi a RISC gépeket?
  • Jellemezze a Pentium II processzort!
  • Jellemezze a Pentium II és a memória sín
    kapcsolatát!
  • Jellemezze a Pentium II mikroarchitektúráját!
  • Mi a feladata a Betölto/dekódoló egységnek?
  • Mi a feladata az Elküldo/végrehajtó egységnek?
  • Mi a feladata a Befejezo egységnek?

65
  • Feladatok
  • Jellemezze az UltraSPARC II processzort!
  • Hogy valósul meg a memória címzés UltraSPARC II
    esetén!
  • Jellemezze az UltraSPARC II mikroarchitektúráját!
  • Mi az UPA feladata?
  • Mi az UDB II feladata?
  • Milyen az UltraSPARC II elágazás jövendölése?
  • Mi a feladata az Elore betölto/Elküldo egységnek?
  • Mi a feladata a Dekódoló egységnek?
  • Mi a feladata a Betölto/Tároló egységnek?
  • Jellemezze az UltraSPARC II csovezetékét!

66
  • Feladatok
  • Jellemezze a PicoJava II processzort!
  • Milyen szervezésu gyorsítótára van a PicoJava
    II-nek?
  • Jellemezze a PicoJava II mikroarchitektúráját!
  • Mi regiszter oszlop?
  • Jellemezze a PicoJava II csovezetékét!
  • Hasonlítsa össze a Pentium II, az UltraSPARC II
    és a PicoJava II mikroarchitektúráját!

67
  • Feladatok
  • Mi a makro definíció?
  • Mi a makró fej?
  • Mi a makró törzs?
  • Mi a makró hívás?
  • Mi a makró kifejtés?
  • Mi a (formális) paraméter?
  • Mi az aktuális paraméter (argumentum)?
  • Mely karakterek játszanak speciális szerepet
    makró kifejtéskor?
  • Melyik karakternek mi a szerepe? Adjon példát rá!
  • Mi a szerepe a LOCAL pszeudó utasításnak?

68
  • Feladatok
  • Adjon példát makró hívást tartalmazó makró
    definícióra!
  • Adjon példát makró definíciót tartalmazó makró
    definícióra!
  • Mit kell tudni azokról a makró definíciókról,
    amelyek egy másik makró definícióban találhatók?
  • Adjon példát olyan makró definícióra, amely
    tartalmazza saját hívását!
  • Adjon példát olyan makró definícióra, amely
    tartalmazza saját átdefiniálását!
  • Mit kell tudni az önmaguk átdefiniálását
    tartalmazó makró definíciókról?

69
  • Feladatok
  • Mi a hatása a PURGE pszeudó utasításnak?
  • Mit jelent a blokk ismétlés?
  • Milyen blokk ismétlési lehetoségeket ismer?
  • Mi a REPT pszeudó utasítás általános alakja?
  • Mi az IRP pszeudó utasítás általános alakja?
  • Mi az IRPC pszeudó utasítás általános alakja?
  • Mondjon példát makrót definiáló blokkismétlésre!
Write a Comment
User Comments (0)
About PowerShow.com