Intel 80C186XL, 80C188XL user manual 80C186 INSTRUCTION SET ADDITIONS AND EXTENSIONS

Models: 80C186XL 80C188XL

1 405
Download 405 pages 42.62 Kb
Page 311
Image 311
Figure A-2. Variable Access in Nested Procedures

80C186 INSTRUCTION SET ADDITIONS AND EXTENSIONS

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

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).

BP

SP

15

0

Old BP

BPM

*BPM = BP Value for MAIN

Display Main

Dynamic

Storage

Main

A1002-0A

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).

A-4

Page 311
Image 311
Intel 80C186XL, 80C188XL 80C186 INSTRUCTION SET ADDITIONS AND EXTENSIONS, Figure A-2.Variable Access in Nested Procedures