summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/tbs/tb0495.pp
blob: 1d5885f4276aaa3d91523e20b3f3205733efaad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{ %cpu=i386 }
{ %OPT=-Cg- }
{$asmmode intel}
var
  Digits : array[0..63] of byte;
type
  PBcd = ^TBcd;
  TBcd  = packed record
    Precision: Byte;                        { 1..64 }
    SignSpecialPlaces: Byte;                { Sign:1, Special:1, Places:6 }
    Fraction: packed array [0..31] of Byte; { BCD Nibbles, 00..99 per Byte, high Nibble 1st }
  end;

var
  c : currency;
  bcd : TBcd;

begin
  c:=1;
  asm
    lea esi,c
    fild [esi].currency

    lea esi,bcd
    mov [esi].TBcd.SignSpecialPlaces,dl

    mov eax,3
    mov digits.byte[eax],0
    mov digits.word[eax],0
  end
end.