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
{ %CPU=i386 } {$ASMMODE INTEL} PROCEDURE a; VAR v,v2,v3:integer; PROCEDURE b;assembler; 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; begin a; Writeln('Program works'); end.