5.16. 5.16 Low Level Implementation of Automatic (Local) Variables

Your program accesses local variables in a procedure using negative offsets from the activation record base address (EBP). Consider the following HLA procedure (which, admittedly, doesn't do much other than demonstrate the use of local variables):

procedure LocalVars; @nodisplay;
var
     a:int32;
     b:int32;
begin LocalVars;

     mov( 0, a );
     mov( a, eax );
     mov( eax, b );

end LocalVars;

The activation record for LocalVars appears in Figure 5-6.

Figure 5-6. Activation Record for LocalVars Procedure.

The HLA compiler emits code that is roughly equivalent to the following for the body of this procedure: ...

Get Art of Assembly Language, 1st Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.