Section courante

A propos

Section administrative du site

SEG

Segment
Turbo Pascal 1+ System

Syntaxe

Function Seg(ident):Integer; Version 1 à 3
Function Seg(ident):Word; Version 4 à 7

Paramètres

Nom Description
ident Ce paramètre permet d'indiquer l'identificateur de variable, de fonction ou de procédure

Description

Cette fonction indique l'adresse d'emplacement de segment de la mémoire physique qu'occupe l'expression.

Remarque

Exemples

Voici un exemple de l'utilisation de cette fonction :

  1. Program SegSamples;
  2.      
  3. Procedure A;
  4. Var
  5.  A:Byte;
  6. Begin
  7.  WriteLN('Segment de la variable interne A d''une procédure = ',Seg(A));
  8. End;
  9.      
  10. Procedure B;Begin
  11.  WriteLn('Segment de B = ',Seg(B));
  12. End;
  13.      
  14. Procedure C;Begin
  15.  WriteLn('Segment de C = ',Seg(C));
  16. End;
  17.      
  18. Var
  19.  D:Byte;
  20.      
  21. BEGIN
  22.  D:=5;
  23.  B;
  24.  C;
  25.  WriteLn('Segment de Code = ',CSeg);
  26.  WriteLn('Segment de la variable D = ',Seg(D));
  27.  WriteLn('Segment de données = ',DSeg);
  28.  A;
  29.  WriteLn('Segment de pile = ',SSeg);
  30. END.

on obtiendra un résultat semblable au suivant :

Segment de B = 27294
Segment de C = 27294
Segment de Code = 27294
Segment de la variable D = 27601
Segment de données = 27601
Segment de la variable interne A d'une procédure = 27643
Segment de pile = 27643

L'exemple suivant permet d'afficher la paire Segment:Déplacement (Segment:Offset) de la variable Y :

  1. Program OfsSegSamples;
  2.  
  3. Var
  4.  Y:LongInt;
  5.  
  6. BEGIN
  7.  WriteLn('Adresse SEGMENT:OFFSET de Y =',Seg(Y),':',Ofs(Y));
  8. END.

on obtiendra un résultat ressemblant à ceci :

Adresse SEGMENT:OFFSET de Y =6074:82

Référence

Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 371.

Dernière mise à jour : Dimanche, le 8 février 2015