Segmantatsii irányelvnek a szerelő

Segmantatsii irányelvnek a szerelő

Mindegyik program három típusú szegmens:

Funkcionalitás szegmens valamivel szélesebb, mint egyszerűen hasító programok tömbökben kód, az adatok és a verem. Szegmentálás része egy általánosabb mechanizmus fogalmához kapcsolódó moduláris programozás. Ez magában foglalja, hogy egyesítse a regisztráció a tárgymodult által termelt fordító, beleértve a különböző programozási nyelvek. Ez lehetővé teszi, hogy összekapcsolják írt programok különböző nyelveken. Ez végrehajtására vonatkozó különböző lehetőségek egy ilyen társulás és tervezett szegmentáció irányelveket.

Egyszerűsített szegmentáció irányelvek

használhatja az egyszerűsített iránymutatások a feladat a szegmensek a program szövege:

  • .KÓD - jelzi a kezdetét a kód szegmens;
  • .DATA - a kezdetét jelzik az adatok szegmens;
  • .Stack - jelzi a kezdetét a verem szegmens.

Azonban az egyszerűsített szegmentáció irányelvek nem hozhat létre több mint három szegmens egyetlen programot.

A szabványos szegmentáció irányelvek

Együtt az egyszerűsített szegmentáció irányelveket is használható szabványos SEGMENT irányelvet. amely meghatározza az elején minden szegmensben. szintaxis:

ImyaSegmenta SEGMENT align kombinálni homályos „osztály”
.
ImyaSegmenta VÉGE

VÉGE irányelv meghatározza a végén a szegmens.

Egy összehangolás attribútum szegmens (igazítás típus) igazítsa a linker, amely szükséges, hogy biztosítsák a forgalomba a megadott határ a szegmens. Ez azért fontos, mert a megfelelő beállítását adathozzáférés a feldolgozók, amelyek kompatibilisek az alapvető i8086, gyorsabb. Érvényes értékei attribútum:

Alapértelmezésben a fajta összehangolás beállítása PARA.
Attribútum kombinálásával szegmensek (kombinatorikus típus) össze az említett linker hogyan kell kombinálni különböző modulok szegmensek azonos nevet. Az alapértelmezett kombinálásával attribútum beállítása privát. Kombinálása az attribútum értékeit a szegmens lehet:

Attribútum osztály szegmens (osztály típus) „osztály” - egy idézett karakterlánc, amely segít meghatározni a megfelelő linker szekvenciát programot szegmens összeállítására szegmenseiben, több modulból. Linker egyesíti együtt a memóriában az összes szegmens az azonos nevű az osztály (osztály nevét, általában lehet bármilyen, de jobb, ha ez az, hogy tükrözze a funkcionalitás a szegmens). Egy tipikus példa a használata az osztály nevét, hogy a csoport szövetsége minden szegmense programkód (általában osztály „kód” használatos erre). Osztályú gépelési mechanizmust lehet csoportosítani szegmensek inicializálva és nem inicializált adat.

Minden magukat a szegmenseket egyenlő, mint a szegmensben, és VÉGE irányelvek nem tartalmaznak semmilyen információt a funkcionális célt a szegmensben. Annak érdekében, hogy használja őket, mint a kód szegmens, adat vagy verem, először meg kell értesíteni a fordító róla, és akkor egy speciális irányelv gondolnánk. Ez az irányelv azt mondja a fordítónak, hogy a szegmens, amely a szegmens regiszterek csatlakozik. Ez viszont lehetővé teszi, hogy a fordító helyesen társítani szimbolikus meghatározott nevek a szegmenseket. Binding szegmens szegmens regiszterek felhasználásával végezzük operandusok az irányelv, amelynek meg kell lennie a név ImyaSegmenta szegmens meghatározott forrás irányelv vagy program SEGMENT kulcsszó semmit. Ha az operandus csak használt kulcsszó semmit. Az előző rendeltetési szegmens regisztereket törölték, és ha mind a hat részes nyilvántartásokban. De a kulcsszó helyett lehet használni semmire ImyaSegmenta érv. Ebben az esetben, akkor szelektíven törés kapcsolat a szegmens és a név ImyaSegmenta megfelelő szegmens regiszter.
SEGMENT direktíva használható bármely memória modell szerint. Amikor a szegmensben irányelv a sík modellre van szükség, hogy jelezze, hogy a fordító, hogy minden szegmensben regisztereket összhangban meghatározott sík memória modellt. Ezt meg lehet tenni a VÁLLALÁSÁRA értelmében:

VÁLLALÁSÁRA CS. Lapos. DS: lapos. SS. Lapos. ES. Lapos. FS. ERROR. GS. ERROR

Regiszterek FS és GS programok nem használják, így attribútum jelzi ERROR.