正整数的反码就是其自身,而负整数的反码可以通过对其绝对值逐位求反来求得。
在单片机汇编中,逐位求反的指令是“CPL”
指令格式:
CPL A
功能:将累加器A中内容取反(将A中内容按位取反,即逻辑非运算)后再送回累加器A中。
例1 设(A)=98H,执行指令
CLR A ;(A)←0
CPL A ;(A)←0FFH
结果:(A)=0FFH
指令格式如下:
CPL C ;(C)←(/C)
CPL bit ;(bit)←(/bit)
以上指令把位累加器C或者直接寻址位(bit)内容取反,不影响其他标志位。
例1 执行下面的指令序列:
MOV P1,#2FH ;(P1)←(2FH即00101111B)
CPL P1.0 ;P1.0位求反
CPL P1.2 ;P1.2位求反
结果:(P1)=2AH(00101010B)。