A MIPS összeállításban van egy regisztráció a veremmutatóhoz, és egy másik regiszter a keretmutatóhoz. Mi a keretmutató és mi a célja? Miben különbözik a verem mutatójától?

Megjegyzések

  • Milyen kutatásokat végzett már – és mennyire ismeri a kifejezéseket? Milyen rendszerre való ez (a különböző rendszerek eltérő terminológiával rendelkeznek)?
  • Csak meg szeretnék ismerkedni a keretmutatóval (mips assembly). Nem értem ', hogy hogyan segít, miért van szükségünk rá? Nagyon köszönöm

Válasz

A MIPS-összeállításban a veremmutató a verem tetejére mutat. Ahogy kiosztja a helyet a veremben, a verem mutató ($ sp) a szabad memóriára mutat.

Amikor egy szubrutint hív meg a MIPS-összeállításban (a regiszterek azokban a napokban prémium értékben voltak – regiszteralapú paraméterek) ahol nem szokványos), az egyik megírja a paramétereket a veremben, majd előre lép a verem mutatóra.

Amikor a módszer elindul, egy paraméter a 16($sp). Amint azonban a változók a veremre kerülnek, a veremmutató elmozdul, és az ugyanaz a paraméter most az 24($sp) helyen lehet. Ez kissé zavaróvá teheti a kódot.

A keretmutató ($ fp) a veremkeret kezdetére mutat, és nem mozog a szubrutin hívás ideje alatt. Ez a veremkeret aljára mutat, és az alprogramba továbbított paraméterek a keretmutatóhoz képest állandó helyen maradnak.

Tisztázza, hogy a keretmutatót el kell tárolni és vissza kell állítani szubrutin hívásokkal, amelyek módosítják.

További olvasmány:

Megjegyzések

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük