fpc/tests/tbs/tb0495.pp

33 lines
613 B
ObjectPascal

{ %skiptarget=android }
{ %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.