Szubrutin irányelvek turbo pascalban 7

10.5. Alprogrami irányelvek

Az irányelvek kiegészítő információt nyújtanak a fordítónak a szubrutinok elhelyezéséről.

10.5.1. FORWARD irányelv

Ha egy szubrutint használ egy másik, és ez viszont először, akkor ott van a probléma, hogy ezeket a rutinokat a programba helyezik (egyik sem helyezhető el a másik előtt). Az ellentmondás megszüntetése. A határidõs irányelvet használják, ami lehetõvé teszi, hogy az alprogramok egyikét két részre osztják.

Az előreirányítás használata esetén először írja be az első szubrutin teljes címét. Ennek a szubrutinnak a testét a továbbítási irányelv váltja fel. Ezután a második szubrutin teljesen le van írva, majd ezt követően az első szubrutint teljesen leírtuk. Ebben az esetben rövidített alprogram-fejlécet írhat, amely magában foglalja a szófolyamatot vagy a funkciót és annak nevét. A formális paraméterek listája és a szubrutin típusa (ha alprogram-függvény) nincs megadva.

Egy példa. Az eljárás Első felhívja az eljárást Másodszor, és ez pedig az első eljárást.

eljárás Első (A, B: Integer); továbbítsa;

Az előreirányító irányelv egyszerűen használható az alprogramok egyszerűbb elhelyezésére: először írja le az összes fejlécet, majd - maguk a szubrutinokat. Ezt az irányelvet nem szabad használni modulokban (lásd a 16. alfejezetet) a modul interfészben bejelentett rutinokhoz.

10.5.2. FAR és NEAR iránymutatások

10.5.3. A KÜLSŐ irányelv

A külső irányelv lehetővé teszi az összeszerelési nyelvben írott és külön összeállított szubrutinok használatát. Ezeket a szubrutinokat a kulcs segítségével kell a főprogramhoz kapcsolni. Itt a fájlnév a fájl neve (a .OBJ kiterjesztéssel), amelyben az összeállítási nyelvben írt alprogramok fordított objektummoduljai.

Max (X, Y: Real) funkció: Real; külső;
eljárás Keresés (var Mas; N: Integer;
var Max, Min: Integer); külső;

külső irányelvet ki kell használni, ha a rutinok assembly nyelven nagyok, és ez jobb összeállítására külön használata helyett a beépített szerelő vagy írja a processzor kódokat inline irányelv (lásd. o. 10.5.5).

10.5.4. Az ASSEMBLER irányelv

Az összeszerelési irányelv lehetővé teszi, hogy egy alprogramot teljes egészében assembly-nyelvben írjon. Ugyanakkor, a fordítás során a szubrutin automatikusan összeáll a Turbo Pascal csomag beépített szerelőjével. Amikor egy ilyen alprogramot hibakereséshez használ, használhatja a beépített hibakereső csomagot.

Egy példa. Olyan függvény, amely meghatározza a két szám maximális számát.

MaxTwo funkció (X, Y: Integer): Integer; szerelő;
asm
MOV AX. X
CMP AX. Y
JG @ 1
MOV AX. Y
@ 1:
végén;

10.5.5. Az INLINE irányelv

Az irányelv lehetővé teszi, hogy a gépkódokba közvetlenül beírt programparancsok szövegébe illesszen be. Más szubrutinokkal ellentétben egy direktvonalas alprogrammal mindenhol hozzáadható mindenhol, ahol van egy hívás (valójában makroszintű meghatározás). Az ilyen szubrutinok olyan paraméterekkel rendelkezhetnek, amelyek a szubrutin szövegében felhasználhatók, és a kötegből szerezhetik azokat.

Az eljárásban lévő gépi kódok zárójelben vannak kitöltve a közvetlen perjel (/) segítségével.

Egy példa. A két számot legfeljebb két számot kiszámító függvény.

10.5.6. INTERRUPT irányelv

A megszakítási irányelv olyan eljárásokra vonatkozik, amelyek a megszakításokat kezelik. Az ilyen eljárásoknak szabványos címe van:

IntHandler eljárás (zászlók, CS, IP, AX,
BX, CX, DX, SI, DI, DS, ES, BP: szó); szakítsa meg;
kezdődik
.
végén;

A fejlécben az egyes paraméterek elhagyhatók (de csak a lista elején), a köztes paraméterek nem törölhetők, például:

IntHandler eljárás (DI, ES, BP: Word); szakítsa meg;

IntHandler eljárás (DI, DS, ES, BP: Word); szakítsa meg;

A megszakítási feldolgozási rutin fejlécében semmilyen más paramétert nem lehet írni.