Как работает absolute? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Добрый день. Хочу понять как работает absolute. Пишу на Free Pascal, но пример взял из книги по Turbo Pascal Фаронова:
var
 x:Real;
 y:array[1..3] of Integer absolute x;
begin
x:=pi;
Writeln(y[1]);
end.
Автор пишет,что должно вывести:
8578
Мне FPC выдает
11544
Вопрос, что это за числа и откуда они берутся? В книге пишется:
В этом примере переменные x и y будут размещены, начиная с одного и того же абсолютного адреса.

Решение задачи: «Как работает absolute?»

textual
Листинг программы
type
  Tvp = packed record
    case Integer of
    0: (c: Char; a: Byte);
    1: (ca: Word);
  end;
var
  vmem: array [0..24,0..79] of Tvp absolute $B800:$0000;

Объяснение кода листинга программы

В данном коде используется абсолютное указание для определения диапазона памяти, в котором будет размещен массив. Абсолютное указание в языке программирования Free Pascal позволяет задать начальный адрес в памяти для переменных или констант. В данном случае, абсолютный адрес $B800:$0000 используется для определения диапазона памяти, в котором будет размещен массив vmem. Сам массив vmem является двумерным массивом типа Tvp. Тип Tvp представляет собой упакованный запись, который может содержать либо одну букву и одно байтовое значение, либо одно слово. Таким образом, данный код предполагает, что в диапазоне памяти от $B800:$0000 до $B800:$0079 размещается двумерный массив vmem типа Tvp, который будет содержать либо букву и байтовое значение, либо слово.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы