Ľudmila Jánošíková

Programovanie v jazyku symbolických adries

pre 32-bitové procesory Intel
Obsah Index
Moduly

Modul je časť programu, ktorá tvorí logický celok. Modul sa samostatne edituje a prekladá. Preto pri zmene v jednom module stačí preložiť daný modul, nemusíme prekladať celý program.

Spoluprácu medzi modulmi zabezpečujú direktívy PUBLIC a EXTRN. Direktíva PUBLIC sprístupní symboly definované v danom module pre použitie v iných moduloch. Symbolmi môžu byť premenné, návestia a symbolické konštanty. Direktíva EXTRN informuje prekladač, že symboly, ktoré sú jej parametrami, boli definované v iných moduloch. Aby prekladač vedel vytvoriť správny strojový kód inštrukcií, ktoré sa odvolávajú na tieto symboly, musíme v direktíve EXTRN uviesť ich typ. Typy premenných a návestí boli vysvetlené v kapitole Premenné a návestia. Konštanta má typ abs.

Pomocou direktív PUBLIC a EXTRN funguje aj spolupráca assemblerovského prog­ramu s programom vo vyššom programovacom jazyku, napr. v Pascale. V nasledujúcom pascalovskom unite sú deklarované rôzne procedúry, ktoré sa budú vyvolávať z assemblerovského programu, a premenná A, s ktorou pracujú obidva moduly.

unit Priklad;

interface

procedure VolajASM;
procedure PublicProc; { far, pretože je viditeľná navonok }

implementation

var A: word;

procedure ASMProc; external;
{$L ASMPROC.OBJ}

procedure PublicProc;
begin
  writeln('Som v procedure PublicProc');
end;

{$F+}
procedure FarProc; { far kvôli prepínaču $F+ }
begin
  writeln('Som v procedure FarProc')
end;
{$F-}

procedure NearProc; { near, pretože je to lokálna procedúra }
begin
  writeln('Som v procedure NearProc');
end;

procedure VolajAsm;
begin
  writeln('Som v procedure VolajASM');
  A := 10;
  writeln('Hodnota A pred ASMProc = ',A);
  ASMProc;
  writeln('Hodnota A po ASMProc = ',A);
end;

end.

Procedúra ASMProc môže vyvolať procedúry PublicProc, NearProc a FarProc a pristupovať k premennej A, ak ich sprístupníme pomocou direktívy EXTRN:

.MODEL small
.DATA
EXTRN A:word
.CODE
EXTRN PublicProc: far ; exportovaná z unitu
EXTRN FarProc: far; lokálna, ale s vynúteným typom far
EXTRN NearProc: near; lokálna
PUBLIC ASMProc
ASMProc PROC
        call PublicProc
        call FarProc
        call NearProc
        sub A,2
        ret
ASMProc ENDP
END

Nasleduje hlavný program, ktorý testuje spoluprácu pascalovského unitu s modulom v JSA:

program Moduly;

uses Priklad;

begin
  VolajASM;
end.

Hore

Načo je vám jazyk symbolických adries?

Architektúra moderných procesorov

Registre

Spôsoby adresovania

Premenné a návestia

Symbolické konštanty

Inštrukčný súbor

Segmentové direktívy

Moduly

Služby operačného systému MS-DOS

Služby operačného systému Windows 95/98/NT/XP

Systémová úroveň vstupu a výstupu

Prostriedky pre prípravu programu

Štandardné segmentové direktívy | Služby operačného systému MS-DOS
Vydala Žilinská univerzita v Žiline, 2000. ISBN 80-7100-723-4.
Otázky a pripomienky môžete poslať autorke.
Naposledy upravené 2.11.2007.