How to use structures in 8086 (MASM)
You're using the wrong addressing mode. Your instruction

MOV AL,FOO.A


will load the (lower byte) of the address of FOO.A in AL. This is called "immediate addressing mode".

Change this into

MOV AL,[FOO.A]


to use the "direct addressing mode" which will take the expression FOO.A as an address to the value to be loaded.



While debugging you should have watched that

ADD AL,FOO.B


adds the value "1".