code: def instruction_SUB(self, opcode, m, register):
          
          r = register.value
          r_new = r - m
          register.set(r_new)
  #        log.debug("$%x SUB8 %s: $%x - $%x = $%x (dez.: %i - %i = %i)" % (
  #            self.program_counter, register.name,
  #            r, m, r_new,
  #            r, m, r_new,
  #        ))
          self.clear_NZVC()
          if register.WIDTH == 8:
              self.update_NZVC_8(r, m, r_new)
          else:
              assert register.WIDTH == 16
              self.update_NZVC_16(r, m, r_new)
docs: Subtracts the value in memory location M from the contents of a
          register. The C (carry) bit represents a borrow and is set to the
          inverse of the resulting binary carry.
  
          source code forms: SUBA P; SUBB P; SUBD P
  
          CC bits "HNZVC": uaaaa