Intel 80C186XL Computer Hardware User Manual


 
80C186 INSTRUCTION SET ADDITIONS AND EXTENSIONS
A-4
Figure A-2. Variable Access in Nested Procedures
The first ENTER, executed in the Main Program, allocates dynamic storage space for Main, but
no pointers are copied. The only word in the display points to itself because no previous value
exists to return to after LEAVE is executed (see Figure A-3).
Figure A-3. Stack Frame for Main at Level 1
After Main calls Procedure A, ENTER creates a new display for Procedure A. The first word
points to the previous value of BP (BPM). The second word points to the current value of BP
(BPA). BPM contains the base for dynamic storage in Main. All dynamic variables for Main will
be at a fixed offset from this value (see Figure A-4).
Main Program (Lexical Level 1)
Procedure A (Lexical Level 2)
Procedure B (Lexical Level 3)
Procedure C (Lexical Level 3)
Procedure D (Lexical Level 4)
A1001-0A
BP
SP
Dynamic
Storage
Main
Old BP
15
0
BPM
Display Main
*BPM = BP Value for MAIN
a1002 0a pc
A1002-0A