
我在keil软件 用c语言写51单片机的时候发现?
c语言里面的一个8位变量居然是和另一个8位变量一起共用一个寄存器r7,并且还是第三个16位变量的后8位。这样一来,在16位变量自减的时候前两个变量也会变化。而以上我都是仿...
c语言里面的一个8位变量居然是和另一个8位变量一起共用一个寄存器r7,并且还是第三个16位变量的后8位。这样一来,在16位变量自减的时候前两个变量也会变化。而以上我都是仿真的时候一个一个观察寄存器和变量的变化对应才发现的。
那么这样其中一个变量引起的变化不会对其他变量有影响吗,而且我在编写c的时候也不知道到底和哪几个变量共用了一个寄存器(可以自己给变量选寄存器吗?),很疑惑啊 展开
那么这样其中一个变量引起的变化不会对其他变量有影响吗,而且我在编写c的时候也不知道到底和哪几个变量共用了一个寄存器(可以自己给变量选寄存器吗?),很疑惑啊 展开
3个回答
意法半导体(中国)投资有限公司
2023-06-12
展开全部

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
不会改变其他变量的值不会改变其他变量的值,因为变量的值都存储在寄存器中,在变量的值发生变化的时候,该变量所在的寄存器中的值会发生变化,而其他变量所在的寄存器中的值不会变化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用汇编语言就不会出现这种情况的。当然用汇编语言编写时,要注意每个寄存器的变化。你用了一个 居然,怕什么呢? 除非keil把C编译成汇编不成功。但作为大公司应该考虑的,你不用担心。 事实上直接用汇编更加自由发挥,更加有效率,就不会被C所局限了。你是否全面跟踪了,最后发现担心是不必须要的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询