@opcode(<EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL>)<EOL><INDENT>def instruction_CMP16(self, opcode, m, register):<DEDENT>
r = register.value<EOL>r_new = r - m<EOL><INDENT>log.warning("<STR_LIT>" % (<EOL>self.program_counter,<EOL>register.name,<EOL>r, m, r_new,<EOL>))<EOL><DEDENT>self.clear_NZVC()<EOL>self.update_NZVC_16(r, m, r_new)<EOL>
Compares the 16-bit contents of the concatenated memory locations M:M+1
to the contents of the specified register and sets the appropriate
condition codes. Neither the memory locations nor the specified register
is modified unless autoincrement or autodecrement are used. The carry
flag represents a borrow and is set to the inverse of the resulting
binary carry.

source code forms: CMPD P; CMPX P; CMPY P; CMPU P; CMPS P

CC bits "HNZVC": -aaaa