It seems like there are some ambiguities when it comes to instruction definitions, at least in the Intel manual. AND is an example. When you call "AND eax, ecx" for instance, how does an assembler know which instruction format to use? Looking at the Intel manual, it seems like there are 2 possible forms:
21 /r AND r/m32, r32 MR
23 /r AND r32, r/m32 RM
It seems like "AND eax, ecx" fits either formats! If that is the case, should either format work then?