This will crash in recent releases of MASM. Builds fine in MASM 6.xxx
SDWORD appears to be the culprit
.686
.MODEL FLAT, STDCALL
.data
myVar SDWORD ?
.code
main PROC
int 3 ; <- Remove to run on the command line
mov eax, 3
.IF SDWORD PTR eax > 0
.IF eax==3
lea eax, [eax+2*eax]
mov ecx, 3
mov SDWORD PTR myVar, ecx
.ENDIF
.ENDIF
ret
main ENDP
END main
or this:
.686
.MODEL FLAT, STDCALL
.data
myVar SDWORD ?
.code
main PROC
int 3 ; <- Remove to run on the command line
mov myVar, 3
.IF SDWORD PTR myVar > 0
.IF myVar==3
lea eax, [eax+2*eax]
mov ecx, 3
mov SDWORD PTR myVar, ecx
.ENDIF
.ENDIF
ret
main ENDP
END main