Язык:
Русский
English
Ofs (функция)
Возвращает смещение определенного объекта.
Объявление
Function Ofs(X) : Word;
Режим
Windows, Real, Protected
Замечания
Параметр X - это любая переменная или идентификатор процедуры или функции. Результат типа Word - смещение адреса X в памяти.
Смотри также
Пример
Язык:
Русский
English
{CSeg.PAS}
uses Crt;
var
I : Integer;
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;
begin
Write('Текущий сегмент кода : 16#');
WriteHexWord(CSeg);
WriteLn('#');
Write('Сегмент данных : 16#');
WriteHexWord(DSeg);
WriteLn('#');
Write('Сегмент стека : 16#');
WriteHexWord(SSeg);
WriteLn('#');
Write('Указатель на стек : 16#');
WriteHexWord(SPtr);
WriteLn('#');
Write('Переменная I по смещению : 16#');
WriteHexWord(Ofs(I));
Write('# в сегменте : 16#');
WriteHexWord(Seg(I));
WriteLn('#');
end.
var
I : Integer;
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;
begin
Write('Текущий сегмент кода : 16#');
WriteHexWord(CSeg);
WriteLn('#');
Write('Сегмент данных : 16#');
WriteHexWord(DSeg);
WriteLn('#');
Write('Сегмент стека : 16#');
WriteHexWord(SSeg);
WriteLn('#');
Write('Указатель на стек : 16#');
WriteHexWord(SPtr);
WriteLn('#');
Write('Переменная I по смещению : 16#');
WriteHexWord(Ofs(I));
Write('# в сегменте : 16#');
WriteHexWord(Seg(I));
WriteLn('#');
end.