Keresés

Címkék

2025-04-23

Verem és kezelése (PUSH, POP)

A verem olyan hely, ami adatok tárolására képes, viszont az eddig megszokott memóriához képest más a működési elve. A vermet elemek alkotják, minden elem egy 8 bites értéket tárolhat.

Míg az átlagos memóriában minden elemhez (mem. pozícióhoz) közvetlen és azonnali hozzáférésünk van, a veremnél ez már nem igaz.

Az adatok betáplálása és kiolvasása az, ami érdekes. Elemeket betehetünk és kivehetünk, de mindig csak a legfelsőbb elemhez van hozzáférésünk.
Ha van egy elemünk, és ráteszünk még egyet, akkor az utóbbi elemet tudjuk kezelni, az az alattit nem.

A fenti ábra mutatja dióhéjban az elvet. Mindig csak a legfelső adathoz van hozzáférésünk. A többi is létezik, csak nem érhetőek el addig, amíg az afelettieket le nem vesszük. A kék nyíl a legfelsőbb elem helyét mutatja meg, mivel a verem is a memóriában található.

Az SP nevű regiszter tárolja a legfelsőbb elem helyét. Hidegindításkor be kell állítani ennek a helyét (ha használni akarjuk), hogy ne zavarja meg az R¤ regisztereket.

Két veremhez kapcsolódó instrukció van a 8051-es instrukciókínálatban: PUSH és POP.
Jelentések:
  • PUSH (tolni)
  • POP (pattintani)
PUSH
Ez az instrukció a megadott memóriacímben található értéket teszi rá a verem legfelsőbb pontjára. Kizárólag direkt mutatót használhatunk.
push 80h (a 80h-s memóriacímben található érték fog a veremre rátevődni; 80h tartalma változatlan)

POP
Ezzel lehet a megadott direkt memóriacímbe a verem legfelsőbb elemét kiszedni onnan.
pop 80h (a 80h-s memóriacímben lesz található a verem akkori legfelsőbb eleme)

Nincsenek megjegyzések:

Megjegyzés küldése

Mit gondolsz?