Difference between revisions of "Absolute/fi"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Absolute}} Absolute modifoija aiheuttaa muuttujan tallentamisen samaan muistialueeseen kuin toinen muuttuja. <source> // Esimerkki little endian x64 prosessori Uses SysUt...")
 
Line 1: Line 1:
 
{{Absolute}}
 
{{Absolute}}
  
Absolute modifoija aiheuttaa muuttujan tallentamisen samaan muistialueeseen kuin toinen muuttuja.
+
<syntaxhighlight lang="pascal" enclose="none"> Absolute</syntaxhighlight> [[modifier/fi|modifoija]] aiheuttaa [[Variable/fi|muuttujan]] tallentamisen samaan muistialueeseen kuin toinen muuttuja.
  
 
+
<syntaxhighlight lang="pascal">
<source>
 
 
// Esimerkki little endian x64 prosessori
 
// Esimerkki little endian x64 prosessori
 
Uses SysUtils;
 
Uses SysUtils;
Line 34: Line 33:
 
     WriteLn('firstByte: ' + IntToStr(firstByte));          // Tulostuu: firstByte: 77
 
     WriteLn('firstByte: ' + IntToStr(firstByte));          // Tulostuu: firstByte: 77
 
end.
 
end.
</source>
+
</syntaxhighlight>

Revision as of 16:41, 28 June 2019

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

Absolute modifoija aiheuttaa muuttujan tallentamisen samaan muistialueeseen kuin toinen muuttuja.

// Esimerkki little endian x64 prosessori
Uses SysUtils;

Var
    anInt      : Integer;
    anotherInt : Integer absolute anInt;
    firstByte  : Byte    absolute anInt;
 
begin
    // Kun molemmat integer-muuttujat ovat samassa muistipaikassa niin muutos heijastuu
    // myös toisessakin
    anInt := 20;

    WriteLn(IntToStr(anInt) + '  ' + IntToStr(anotherInt)); // Tulostuu: 20  20

    // Lukuarvo 20 sopii tavun kokoiseen muistipaikkaan

    WriteLn('firstByte: ' + IntToStr(firstByte));           // Tulostuu: firstByte: 20
   
    anotherInt := 333;

    WriteLn(IntToStr(anInt) + '  ' + IntToStr(anotherInt)); // Tulostuu: 333 333

    // Luku 333 on liian iso sopiakseen tavun kokoiseen muistipaikkaan
    // little-endian x64 - vähiten merkitsevä tavu on ensimmäisenä muistissa:
    // 333 = 101001101 =  01001101 00000001 muistissa = $4D $01 = desimaalisena: 77 1

    WriteLn('firstByte: ' + IntToStr(firstByte));           // Tulostuu: firstByte: 77
end.