[net.lang.pascal] what might go wrong in these code

wei@princeton.UUCP (P Wei) (11/21/85)

program test;
var
  a,b : integer;
procedure call_int7e(a : integer; var b : integer);
begin inline($b8/$01/$cd/$7e); end;  {mov ax,01
				      int 7eh}
begin
   a := 0;
   b := 0;
   call_int7e(a,b);
   .
   .
   .
When I call call_int in the main program, I suppose that the TURBO first pushes
the value of a onto the stack, and then pushes the pointer of b onto the stack,
finally pushes the return address on top of the stack.
When the program reaches the inline code in call_int7e, it will transfer
control to the interrupt routine 7eh with a parameter in ax register.
When the interrupt routine 7eh is reached, the stack will look like :
sp----> IP        (low address)
	CS
	flags
	return address
	offset b
	segment b
	value of a     (high address) and SS is the one set by TURBO.
Can anyone tell me if there is anything wrong ?
HP Wei  (wei@princeton)