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