Sign in Join
Wiki copytemporary

Absolute/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Absolute/de

OldNewLine
1+Zurück zu den [[Reserved words/de|reservierten Wörtern]].
2+
3+# Absolute
4+
5+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.
6+
7+``` pascal
8+Var
9+ sintI: ShortInt;
10+ lintI: LongInt absolute sintI;
11+
12+begin
13+ // korrekte Anzeige
14+ lintI := 20;
15+ WriteLn(lintI: 8, sintI: 8); // Anzeige: 20 20
16+
17+ // unsinnige Anzeige
18+ lintI := 2000;
19+ WriteLn(lintI: 8, sintI: 8); // Anzeige: 2000 -48
20+
21+end.
22+```
23+
24+--Olaf 17:08, 19 October 2012 (UTC)
25+
26+Ein praktisches Anwendungsbeispiel:
27+
28+``` pascal
29+var
30+ rcol: record
31+ r, g, b: byte;
32+ end;
33+ acol: array[0..2] of byte absolute rcol; // Gleicher Speicherbereich, wie rcol.
34+
35+begin
36+ acol[0] := 22;
37+ acol[1] := 44;
38+ acol[2] := 66;
39+
40+ WriteLn(rcol.r);
41+ WriteLn(rcol.g);
42+ WriteLn(rcol.b);
43+end.
44+```
45+
46+Ausgabe:
47+
48+```text
49+22
50+44
51+66
52+```
53+
54+## Direkter Speicherzugriff
55+
56+**absolute** kann man auch verwenden, um direkte mit einem Bezeichner auf eine Speicherzelle zu zeigen.
57+
58+ZB. einen direkten Zugiff auf ein GPIO-Port eines AVRs.
59+
60+``` pascal
61+var
62+ LED_PORT: Byte absolute $38;
63+ LED_DDR: Byte absolute $37;
64+
65+begin
66+ LED_DDR := $FF;
67+ LED_PORT := $FF;
68+ ...
69+```
70+
71+Unter DOS kann man so auf das erste Zeichen im Video-RAM zugreifen.
72+
73+``` pascal
74+var
75+ Zeichen: Byte absolute $B800:$0000;
76+```
77+
78+Unter moderen OS wird solch eine Zugriff vom OS blockiert.
79+
80+---
81+*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](/wiki-contact).*
82+Category: Reserved words/de

Back to history