Sign in Join
Wiki copytemporary

Absolute/de

Deutsch · English · Español · Français · Suomi · Русский

Zurück zu den reservierten Wörtern.

Absolute

Bei dem Modifier Absolute zeigen beide Variablen auf den selben Speicherbereich. Der in der Variablen gespeicherte Wert, wird von der Variablen solange richtig angezeigt, wie der gespeicherte Inhalt der Variablen im Wertebereich der ausgebenden Variable ist.

pascal
Var
  sintI: ShortInt;
  lintI: LongInt absolute sintI;

begin
    // korrekte Anzeige
    lintI := 20;
    WriteLn(lintI: 8, sintI: 8); // Anzeige: 20  20

    // unsinnige Anzeige
    lintI := 2000;
    WriteLn(lintI: 8, sintI: 8); // Anzeige: 2000 -48

end.

--Olaf 17:08, 19 October 2012 (UTC)

Ein praktisches Anwendungsbeispiel:

pascal
var
  rcol: record
    r, g, b: byte;
  end;
  acol: array[0..2] of byte absolute rcol; // Gleicher Speicherbereich, wie rcol.

begin
  acol[0] := 22;
  acol[1] := 44;
  acol[2] := 66;

  WriteLn(rcol.r);
  WriteLn(rcol.g);
  WriteLn(rcol.b);
end.

Ausgabe:

text
22
44
66

Direkter Speicherzugriff

absolute kann man auch verwenden, um direkte mit einem Bezeichner auf eine Speicherzelle zu zeigen.

ZB. einen direkten Zugiff auf ein GPIO-Port eines AVRs.

pascal
var
  LED_PORT: Byte absolute $38;
  LED_DDR:  Byte absolute $37;

begin
  LED_DDR := $FF;
  LED_PORT := $FF;
  ...

Unter DOS kann man so auf das erste Zeichen im Video-RAM zugreifen.

pascal
var
  Zeichen: Byte absolute $B800:$0000;

Unter moderen OS wird solch eine Zugriff vom OS blockiert.


From the Free Pascal wiki, page "Absolute/de", as it stood on 2020-01-29 after a change by Mathias, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.