.obj
A .obj fájl kiterjesztés nem más mint tárgykódú (object) állomány. Assembler fordítóval, mint TASM vagy MASM lehet előállítani ezt a kiterjesztést használó modult.
A pascal és a tárgykódú állomány kapcsolata[szerkesztés]
A Pascal programba az {$L modul_name.obj}
fordító direktíva segítségével építhetjük be az ilyen kiterjesztéssel rendelkező fájlt.
Az Assembly nyelven elkészített eljárásokat és függvényeket a pascal programban külső rutinként kell deklarálni (external
).
Assembly eljárás készítése[szerkesztés]
Nézzük meg az alábbi eljárást, amely a színes szöveges képernyőt a híváskor megadott karakterrel és színnel tölti fel.
.MODEL TPascal
.CODE
PUBLIC FillScreen
FillScreen PROC FAR char:BYTE, attr:byte
mov al,char
mov ah,attr
mov cx,2000 ;2000 szó
mov di,0B800H ;a képernyőpuffer szegmense
mov es,di
xor di,di ;0 eltolás
cld
rep stosw
ret
FillScreen endp
END
Tárgykód beszerkesztése[szerkesztés]
Az Assembly forrásfájl előállítása után (például: fillscr.asm) a TASM vagy a MASM Assembler fordító segítségével elkészíthetjük a beszerkeszthető tárgykódot.
{$L fillscr.obj}
{
..
..
}
{pascal fejlécet készítünk az assembly nyelven írt alprogramhoz}
Procedure FillScreen(ch: Char; attr: Byte); Far; External;
{
..
..
}
Var i, betu, hatter : Integer;
Begin {main}
Randomize;
For i:=1 To 26 Do Begin
betu:=1 + Random(15);
Repeat
hatter:=Random(8);
Until hatter <> betu;
FillScreen(Chr(64 + i), betu + 16 * hatter);
End;
ClrScr;
End.
Az angol ábécé betűivel, és véletlen színekkel tölti fel a képernyőt.