Figure a2. variable access in nested procedures, Figure a3. stack frame for main at level 1 – Intel 80C188XL User Manual

Page 311

Advertising
background image

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

Advertising
This manual is related to the following products: