Ofs: Porovnání verzí

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „Vrací offset určeného objektu. ;Deklarace function Ofs(X): Word; ;Režim :Windows, Reálný, Chráněný ;Poznámky :X je libovolná proměnná nebo identifikáto...“)
 
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 51: Řádek 51:
 
[[Category:System]]
 
[[Category:System]]
 
[[Category:Funkce System]]
 
[[Category:Funkce System]]
 +
[[Category:Funkce pro operace s ukazateli a adresami]]

Aktuální verze z 5. 10. 2012, 20:59

Vrací offset určeného objektu.

Deklarace
function Ofs(X): Word;
Režim
Windows, Reálný, Chráněný
Poznámky
X je libovolná proměnná nebo identifikátor procedury či funkce. Výsledkem typu Word je offsetová část adresy X.
Viz také
Addr
Seg


Vzorový příklad

{CSeg.PAS}
{Vzorový příklad funkce CSeg, DSeg, SSeg, SPtr, Ofs a Seg.}
{ Pro Windows: }
{ uses WinCrt; }
procedure WriteHexWord(w: Word);
const
  hexChars: array [0..$F] of Char =
    '0123456789ABCDEF';
begin
  Write(hexChars[Hi(w) shr 4],
        hexChars[Hi(w) and $F],
        hexChars[Lo(w) shr 4],
        hexChars[Lo(w) and $F]);
end;
var
  i: Integer;
begin
  Write('Aktuální kódový segment je $');
  WriteHexWord(CSeg); Writeln;
  Write('Globální datový segment je $');
  WriteHexWord(DSeg); Writeln;
  Write('Segment zásobníku je $');
  WriteHexWord(SSeg); Writeln;
  Write('Ukazatel zásobníku je na $');
  WriteHexWord(SPtr); Writeln;
  Write('i je na ofsetu $');
  WriteHexWord(Ofs(i));
  Write(' v segmentu $');
  WriteHexWord(Seg(i));
end.