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

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

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

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

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

textual
Листинг программы
  1. type
  2.   Tvp = packed record
  3.     case Integer of
  4.     0: (c: Char; a: Byte);
  5.     1: (ca: Word);
  6.   end;
  7. var
  8.   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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы