. Structure member selector Operator
memptr.fieldname
Selects a structure member.
The period (.) structure member operator is far more strict in Ideal
mode when accurately specifying the structure members you're referring
to. The expression to the left of a period must be a structure
pointer. The expression to the right must be a member name in that
structure. Here are some examples:
Ideal
struc demo ; Declare structure type
Ord dw ?
Tipe db 5 dup (?)
Numbers dw 12 dup (?)
ends
DATASEG
fordA demo <16,,> ; Define variables
fordT demo { Tipe='FordT' }
UDATASEG
fords demo 200 dup (?)
CODESEG
assume ds:dgroup
mov dx,[fordA.Ord] ;
mov ax,[(demo PTR bx).Ord] ; MASM: mov ax,Ord[bx]
mov ax,[(demo bx).Ord] ; PTR operator is optional
mov cx,OFFSET (demo).Numbers ; MASM: mov cx,Numbers
mov ax,[(demo (fordT + bx)).Ord] ; MASM: mov ax,fordT[bx].Ord
mov ax,[((demo bx).Numbers) + 2] ; MASM: mov ax,2[bx].Numbers
mov ax,SIZE demo ; ax = 31
MASM
; Can't do this in Ideal mode:
mov ax,SIZE Numbers ; ax = 24