fpc/tests/test/tasm21.pp
2018-02-20 04:09:16 +00:00

58 lines
736 B
ObjectPascal

{ %CPU=i8086 }
{$IFDEF FPC}
{$MODE TP}
{$ENDIF}
program tasm21;
var
test2a_ofs, test2b_ofs: word;
procedure Error;
begin
Writeln('Error!');
Halt(1);
end;
function test1a: word; assembler;
asm
mov ax, offset test1a;
end;
function test1b: word;
begin
asm
mov ax, offset test1b;
mov @Result, ax
end;
end;
procedure test2a; assembler;
asm
mov ax, offset test2a;
mov test2a_ofs, ax
end;
procedure test2b;
begin
asm
mov ax, offset test2b;
mov test2b_ofs, ax
end;
end;
begin
if test1a <> Ofs(test1a) then
Error;
if test1b <> Ofs(test1b) then
Error;
test2a;
if test2a_ofs <> Ofs(test2a) then
Error;
test2b;
if test2b_ofs <> Ofs(test2b) then
Error;
Writeln('Ok!');
end.