8051中的位操作程序

在本节中,我们将看到使用8051进行一些位操作的操作。8051支持对8位数字的不同位进行的某些操作。这些操作类似于补码,设置为1,移动,与,或运算等。

在此示例中,我们从位置10H取一个AEH,然后对该数据执行以下与位相关的操作后,我们仅将结果存储在位置30H中。

将对该数据执行的与位相关的操作如下-

  • 补码b 2

  • 将b 5移至b 4

  • 或b0和b 1的 补码并存储到C(b 7

  • 设定b 6

  • 重置位b 3

输入为AEH

位位置
b 7
b 6
b 5
b 4
b 3
b 2
b 1
b 0

1
0
1
0
1
1
1
0


输出结果

位位置
b 7
b 6
b 5
b 4
b 3
b 2
b 1
b 0

0
1
1
1
0
0
1
0


输出为72H

程序

MOV24H,10H;Copy item from 10H to 24H
CPL24.2;Complement bit b2
MOVC,24.5;Copy b5 to C
MOV24.4,C;Move C to b4
MOVC,24.0;Make copy of b0 to C
ORLC,/1;OR C and complement of b1
SETB24.6;Set bit b6
CLR24.3;Reset bit b3
MOV30H,24H; Store the result at 30H
HALT:   SJMP HALT

从程序中,我们可以轻松获得逻辑。要使用位可寻址操作,我们必须访问20H到2FH的位置。这16个字节用于位可寻址操作。 

在位可寻址操作中,进位标志的作用类似于1位累加器。 

输出结果

地址






10小时
AEH
11小时







30小时
72小时
31小时