A szegmensek assembly - studopediya

Egyszer volt egy kérdés a sugárzását a program egyes részeit felmerül az a kérdés, hogy ezek a részek működnek. Az igazságosság meg kell jegyezni, hogy még ha nem gondol a szegmensek két szegmenst a program: a program memória és az adatok memóriában. Ha jobban megnézed a programot, akkor rájössz, hogy amellett, hogy utasítást a program memória tárolja állandók, azaz a program memóriában vannak elhelyezve, legalább két szegmens: szoftverek és adatok. A váltakozás a program és az adatok vezethetnek kívánatos következményei. Bármely okból adatok véletlenül lehet végezni, mint program, vagy fordítva tudja fogadni és feldolgozni, mint az adatokat.

A szegmensek assembly - studopediya

Ábra V.3.1. Hasítás programot és adatmemóriát szegmenseket.

A fent említett okok miatt ahhoz a tényhez vezetnek, hogy kívánatos, hogy egyértelműen megkülönböztesse legalább három szegmens:

Annak meghatározására, az abszolút memória szegmensek használt irányelv:

CSEG - abszolút szegmens a programban memória

DSEG - abszolút szegmens a belső adatmemória

XSEG - abszolút szegmens a külső adatokat memóriában

Ábra V.3.3. Példa CSEG irányelv használ elhelyezésére ISR.

szegmens irányelv lehetővé teszi, hogy meghatározza a szegmens nevét és a memória terület, amely otthont ad a memória szegmensben. Minden memóriahely megadott kulcsszó:

· Xdata - forgalomba egy szegmens a külső adatokat memóriában;

· Code - elhelyezése a szegmensben a program memória;

_data szegmens iData

Ebben a példában a bejelentett húr buferKlav, amely nyolc byte változókat. Ezen kívül ebben a példában, a változó deklarált VershSteka, amely megfelel az utolsó memóriaterület, amely tárolására használt változókat. Változó VershSteka lehet használni az inicializáláshoz a stack pointer annak érdekében, hogy kiosztani, hogy egy köteget a legnagyobb felhasználható belső memória mennyisége sejtek. Erre azért van szükség annak érdekében, hogy elkerülje a verem túlcsordulás, amikor hívja beágyazott alprogram.

_bits szegmens bit