SzA4. Az utasítás- és operandus típusok, állapottér, állapot műveletek Flashcards
A gépi kódú utasítás formája
Gépi kódú utasítás: Műveleti kód + címrész (mit végzünk el, meghatározott bit hosszúság, ez határozza meg, hogy hány operanduson, hány adaton)
Műveleti kód: megállapítja, hogy mely utasítások vannak engedélyezve, és milyen operanduson használható (FX, FP, BCD).
Az utasítások fajtái
4 címes
d, so1, so2, köv ut. címe
nagyon merev
köv utasítás címe helyettesíthető PC-vel ami inkrementál
3 címes
d, so1, so2
PC tárolja a következő utasítás címét.
Előnye: párhuzamos végrehajtás lehetséges, eredményt bárhova írhatjuk
Hátránya: hosszú utasítások, nagy mennyiségű adat, sok memóriát igényel, lassú, kevés/nincs elágazás.
(Mai RISC processzorok többségében ezt használják) rrrd minimum 32 regiszter
2 címes
so1, so2
Az eredmény so1-be megy (célregiszter)
Kettes operandus lehet memóriacím is.
+ gyorsabb végrehajtás
Pl.: ADD[100][102], 100-as és 102-es címet adja össze, az eredmény a 100-as címre megy.
Mai CISC processzorok általában ezt használják
1 címes
Betöltjük a 100-as címről az operandust AC-be, majd hozzáadjuk a 102-es címet, majd kiírjuk az AC tartalmát.
AC LOAD[100]
ADD[102]
STORE[100]
Az utasítások halmozhatók.
- nő az utasítások száma
+ gyorsan végrehajthatóak az utasítások
+ kisebb tárolási hely
0 címes fajtái:
NOP, CLEAR, PUSH, POP
STACK (push, pop) – verem műveletek
NOP – no operation
(CLEAR D’)
A műveleti kód az eredményt is tartalmazza
+gyors, rövid
+az utasításkészletet növelik
Operandus típusok
Akkumulátor
előnye: gyors
hátránya: egy van belőle
memória
előnye: nagy
hátránya: lassú, hosszú címek->hosszú utasítás
regiszter
előnye: gyors
hátránya: korlátozott darabszám
verem
előnye: gyors, nincs címzés
hátránya: csak a tetejét látjuk
immediate
magában a programban adunk értéket a változónak
Architektúrák osztályozása, szabályos architektúrák
Bizonyos architektúrák ugyan azt az operandus típust biztosítják valamennyi adatmanipuláció során. LOAD és STORE kivételek.
Állapottér
Programból látható, és programtranszparens tárolókból áll, amik az adott programra vonatkozó állapotinformációkat hordozzák.
Programból látható:
* PC
* Állapotjelzők: Condition-code, univerzális állapotjelzők (carry, zero, negatív stb), adattípusonként különböző állapotjelzők
* Egyéb: indexelés, címzési módok, debug
Programtranszparens:
* Virtuális memória kezelés, megszakításkezelés, veremkezelés
Állapotjelzők
Kivételes események kezelésére vannak, amik a program futása közben következhetnek.
- ZERO
- NEG
- OVERFLOW
- CARRY
FP esetén:
- Alulcsordulás
- Túlcsordulás
- Denormalizált szám
- Nullával való osztás
- Érvénytelen művelet
Állapotműveletek
Program counter
- Inkrementálás
- Felülírás egy utasításból átvett címre
Flag
- Set
- Reset
- Save
- Load
- Clear