8051中的位操作程序
在本节中,我们将了解一些使用 8051 的位操作。8051 支持对 8 位数的不同位进行一些操作。这些操作包括取反、置1、移动、与运算、或运算等。
在这个例子中,我们从 10H 位置获取一个数字 AEH,然后在对该数据执行以下与位相关的操作后,我们只是将结果存储在 30H 位置。
将对该数据执行的与位相关的操作如下:
对 b2 取反
将 b5 移动到 b4
将 b0 与 b1 的补码进行或运算,并将结果存储到 C (b7)
置位 b6
复位 b3
输入为 AEH
位位置 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
---|---|---|---|---|---|---|---|---|
值 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
输出
位位置 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
---|---|---|---|---|---|---|---|---|
值 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
输出将为 72H
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
程序
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 位累加器。
输出
地址 | 值 |
---|---|
. . . | |
10H | AEH |
11H | |
. . . | |
30H | 72H |
31H | |
. . . |
广告