|
@@ -0,0 +1,56 @@
|
|
|
+{ %CPU=i386 }
|
|
|
+
|
|
|
+{$MODE TP}
|
|
|
+
|
|
|
+program tasm21a;
|
|
|
+
|
|
|
+var
|
|
|
+ test2a_ofs, test2b_ofs: longword;
|
|
|
+
|
|
|
+procedure Error;
|
|
|
+begin
|
|
|
+ Writeln('Error!');
|
|
|
+ Halt(1);
|
|
|
+end;
|
|
|
+
|
|
|
+function test1a: longword; assembler;
|
|
|
+asm
|
|
|
+ mov eax, offset test1a;
|
|
|
+end;
|
|
|
+
|
|
|
+function test1b: longword;
|
|
|
+begin
|
|
|
+ asm
|
|
|
+ mov eax, offset test1b;
|
|
|
+ mov @Result, eax
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure test2a; assembler;
|
|
|
+asm
|
|
|
+ mov eax, offset test2a;
|
|
|
+ mov test2a_ofs, eax
|
|
|
+end;
|
|
|
+
|
|
|
+procedure test2b;
|
|
|
+begin
|
|
|
+ asm
|
|
|
+ mov eax, offset test2b;
|
|
|
+ mov test2b_ofs, eax
|
|
|
+ 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.
|