@opcode(<EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL><NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <EOL>)<EOL><INDENT>def instruction_SBC(self, opcode, m, register):<DEDENT>
a = register.value<EOL>r = a - m - self.C<EOL>register.set(r)<EOL><INDENT>log.debug("<STR_LIT>" % (<EOL>self.program_counter, opcode, register.name,<EOL>a, m, self.C, r, r<EOL>))<EOL><DEDENT>self.clear_NZVC()<EOL>self.update_NZVC_8(a, m, r)<EOL>
Subtracts the contents of memory location M and the borrow (in the C
(carry) bit) from the contents of the designated 8-bit register, and
places the result in that register. The C bit represents a borrow and is
set to the inverse of the resulting binary carry.

source code forms: SBCA P; SBCB P

CC bits "HNZVC": uaaaa