I've noticed a couple instruction encoding differences with /Zg (which demands MASM identical encoding).
(1) ML 6.15.8803 encodes simply ".if ah" using "or ah,ah" -- JWASM v2.06e uses "and ah,ah"
The same "or vs and" opcode difference seems to be true if any byte or word register is used in this way (eg ".if di").
Encoding can be forced the same by adding "!= 0" (eg. using "if ah != 0").
(2) ML 6.15.8803 encodes ".until ah != al" or simply "cmp ah,al" using the 0x38,0xc4 cmp format -- JWASM v2.06e uses 0x3a,0xe0.
I suspect the same may be true for other registers and sizes as well.
This could be a MASM version variability; if so, I suppose there's no fix for it.
Log in to post a comment.