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)