A Structure Template Can Be Referenced in a MASM Program

ID Number: Q74924

5.10 5.10a 6.00 | 5.10 5.10a 6.00

MS-DOS | OS/2

Summary:

With the Microsoft Macro Assembler (MASM), if a structure type is

declared but no instance of the structure is ever defined, the

assembler will still permit access to the structure.

This is expected behavior for the assembler. A reference to a

structure field in this manner is equivalent to taking the offset of

the field from the beginning of the structure.

More Information:

The sample code below illustrates this situation. The example declares

an "animal" structure type, but does not define an instance of the

structure. A reference to this structure type is then made in the

following line:

mov ax, animal.dog

As described above, the reference to animal.dog just generates the

offset of the field, dog, from the beginning of the structure;

therefore, this line is effectively the same as the statement "mov ax,

2".

Sample Code

-----------

; Assemble options needed: none

.MODEL SMALL

animal struc

cat dw 11

dog dw 12

animal ends

.CODE

start: mov ax, @data

mov ds, ax

mov ax, animal.dog

END start