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.
|