down vote
accepted you'd need to dereference the pointer to get the actual character:
mov eax, OFFSET operandA+1
mov cl,byte ptr [eax]
cmp cl,'!'
or
mov eax, OFFSET operandA
mov cl,byte ptr [eax + 1]
cmp cl,'!'
this preserves eax so you can compare the second char using:
inc eax
mov cl,byte ptr [eax]
cmp cl,'?'
or
mov cl,byte ptr [eax + 2]
cmp cl,'?'