@@ -0,0 +1,26 @@
+program test;
+{$INLINE ON}
+{$ASMMODE ATT}
+
+var
+ j : longint;
+ procedure Tst(var j : longint); assembler;inline;
+ var
+ i : longint;
+ asm
+ movl j,%ebx
+ movl (%ebx),%eax
+ movl $5,i
+ addl i,%eax
+ movl %eax,(%ebx)
+ end;
+begin
+ j:=5;
+ Tst(j);
+ if (j<>10) then
+ begin
+ halt(1);
+end.
@@ -0,0 +1,30 @@
+{$ASMMODE INTEL}
+PROCEDURE a;
+VAR v,v2,v3:integer;
+ PROCEDURE b;
+ BEGIN
+ ASM
+ MOV AX,v
+ mov v2,AX
+ mov EDI,0
+ MOV AX,[EDI+v]
+ MOV AX,[EBP+OFFSET v]
+ MOV v3,AX
+ END;
+BEGIN
+ v:=5;
+ v2:=4;
+ v3:=0;
+ b;
+ if (v2<>v) or (v3<>v) then
+ Halt(1);
+END;
+ a;
+ Writeln('Program works');