单片机中如何将寄存器R2中的数据奇数位取反,偶数位不变

采用循环
2024-12-14 05:39:25
推荐回答(5个)
回答1:

MOV A #AAH ;将累加器赋值10101010
ORG A R2 ;将R2或到累加器中得R2奇数位(偶数位为1)
CPL A ;将累加器取反,即R2奇数位取反(偶数位为0)
MOV R3 A ;将累加器内容放入R3
MOV A #0AAH 将累加器赋值10101010
ANL A R2 ;将R2与到累加器中R2偶数位(奇数位为0)
ORG A R3 ;将R3或到累加器中,即R2奇数位的反与R2偶数位求或
MOV R2 A ;将结果赋到R2中

回答2:

R2 不能直接进行计算,必须把数据传送到A中,才能计算。
所以,正确的程序如下:
MOV A, R2
XRL A. #1010 1010B
MOV R2, A

回答3:

指令如下:
MOV A,R2
ANL A,#55H
MOV B,A
MOV A,R2
CPL A
ANL A,#55H
ORL A,B

MOV R2,A

回答4:

让他与一个数0xaa进行异或

回答5:

(R2中的数据 与 AAh) 或 (非(R2中的数据 与 55h) )