51单片机,位 *** 作指令有什么特点?

51单片机,位 *** 作指令有什么特点?,第1张

51单片机位 *** 作指令又称布尔 *** 作,它是以位为单位进行的各种 *** 作。

我只学过80c51所以这里我只讲一下我所知道它的吧:

进行位 *** 作的时候,以进位作为位慎辩累加器,位 *** 作指令中的位地址有四种表示形式:

1、直接地址方式(如0D5H);

2、点 *** 宽态缺作符方式(如0D

0H.5;PSW.5等);

3、位名称方式(如F0);

4、伪指令定义方式(如MYFLAG

BIT

F0)。

而它进行位寻址的字节地址是有范围的:

是字节地址在20H到2FH内的都可以进行位寻址。另外部分的特殊功能寄存器也可以进行位寻址。

而你所说的位地址和你的字节地址相同的情况那完全不用考虑的,因为他们的寻址闭孙方式不同:一个是位寻址而另外一个是字节寻址。

51单片机汇编语言编程,只有16进制地址尾数为0和8的寄存器可以位寻尘前址。你要芦逗置某寄存器的某位,但SETB 0X10.1 编译不过就太正常了,因为51汇编中16进制用xxxxH书写才合法,你这个写法当然通不过。另外,也不能这样 *** 作你期望的位,因为可以位寻址寄存器的位有自己的位地址,这也是只有16进制地址尾数为0和8的寄存器可以位寻址的原因,多了排不开地址。

寻址规则就是,16进制地址尾数为0和8的寄存器的可寻址位地址,就是从其本身地址开始的8个地址,对应其8个派哗清位。你要寻址10H这个寄存器(实际上没有,51寄存器地址从80H开始,这里是打比方让你明白)的各个位,可以这样:

SETB 10H10H.0

SETB 11H10H.1

以此类推。

51系列单片机具有的位 *** 作空间?你问的是位地址吧?

51系列单片芹敏粗机的位 *** 作的位地址范围是00H~FFH,共256个位。

其中的00H~7FH,共128个位,是在内部RAM的16个单嫌镇元中,单元地址是20H~2FH。

而80H~FFH,拿搜是在特殊功能寄存器中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12273341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存