Article: Q44309
Product(s): See article
Version(s): 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | B_BasicCom | mspl13_basic
Last Modified: 20-DEC-1989
The BC.EXE compiler supports the /A option, which outputs a listing
(.LST) that shows the assembly-language code that the compiler
generates for each line of the source file.
The "Data" column in this assembly-language code listing is a
hexadecimal value showing how many bytes have been statically
allocated in the default data segment (DGROUP).
This information applies to Microsoft QuickBASIC Versions 4.00,
4.00b, and 4.50 for MS-DOS, to Microsoft BASIC Compiler Versions 6.00
and 6.00b for MS-DOS and MS OS/2, and to Microsoft BASIC PDS Version
7.00 for MS-DOS and MS OS/2.
As a demonstration, compile the following program using the BC /A
option:
x% = 5 'Allocates 2 bytes
y! = 100 'Allocates 4 bytes
z# = 200 'Allocates 8 bytes
The following listing (.LST) file is generated:
Offset Data Source Line
0030 0006 x% = 5 'Allocates 2 bytes
0030 0006
0030 0006 y! = 100 'Allocates 4 bytes
0030 0006
0030 0006 z# = 200 'Allocates 8 bytes
0030 0006
0030 0006
0030 ** I00002: mov X%,0005h
0036 ** int 35h
0038 ** db 06h
0039 ** dw <0000C842>
003B ** int 35h
003D ** db 1Eh
003E ** dw Y!
0040 ** int 3Dh
0042 ** int 39h
0044 ** db 06h
0045 ** dw <0000000000006940>
0047 ** int 39h
0049 ** db 1Eh
004A ** dw Z#
004C ** int 3Dh
004E ** call B$CENP
0053 0014
The last entry in the "Data" column shows that a total of 20 bytes (6
+ 2 + 4 + 8 = 20) have been allocated in near data. Note the value is
shown as a hexadecimal number (0014 hex = 20 decimal).