Structure Field Not Corrected by the Linker

ID Number: Q23579

1.25 1.27 3.0x 4.00 5.00

MS-DOS

Problem:

The field in a structure is not fixed up by the linker in the

following example:

EXTERN proc_1 : far

proc_entry STRUC

proc_addr DD 00H

proc_entry ENDS

jump SEGMENT

jmp_tbl LABEL dword

;The assembler translates the following

;instruction as 00 20 20 20, instead of

;letting the linker fix the address

proc_entry <proc_1>

jump ENDS

END

This behavior differs from Version 3.01.

Response:

The DD, DW, or DF reference to an address in a structure must be left

uninitialized by giving a value of "?" within the structure. This

procedure causes the address to be corrected by the linker; otherwise,

the assembler will initialize the variable with the given value.