17.4 EXEHDR Output: Segmented Executable File

The first part of the EXEHDR output for a segmented executable file appears as follows:

Module:

Description:

Data:

Initial CS:IP:

Initial SS:SP:

Extra stack allocation:

DGROUP:

The meaning of each field is described in the following list:

Module:

Gives the name of the application as specified in the NAME statement of the .DEF file used to create the file or the name assumed by default.

Description:

Gives the text of the DESCRIPTION statement of the .DEF file or the description assumed by default.

Data:

Indicates the program's default data segment (DGROUP) type: SHARED, NONSHARED, or NONE. This type can be specified in a .DEF file.

Initial CS:IP:

Gives the application's starting address.

Initial SS:SP:

Gives the value of the initial stack pointer, which gives the location of the initial stack.

Extra stack allocation:

Gives the size in bytes of the stack, specified in hexadecimal.

DGROUP:

Gives the segment number of DGROUP in the program's object files. Segment numbers start with the number 1.

At the end of the list of fields, EXEHDR displays any module flags that were set for every segment in the module. For example, PROTMODE may appear.

The message Error in image may appear at the end of the list of fields. If a LINK error (such as “unresolved external”) occurs when the file is created, LINK sets the error bit in the header. This prevents the file from being loaded. You can clear the error bit with the /RESET option, described on page 631.