继续昨天的问题

嵌入式Linux

共 637字,需浏览 2分钟

 ·

2023-11-10 13:53

昨天的文章发出来了,大家其实对下面的那段代码还是挺感兴趣的,刚好老王给我发了一段更加有意思的代码截图。

昨天的文章

竟然改变不了const的值

今天老王给我发了下面的截图

这个截图里面需要注意些内容
我们把数组的值和数组的地址给打印出来,并且把dp的值和dp指针指向的值也给打印出来。
但是发现,他们地址一样但是值却是不一样的。
崩溃了吧!
那只能看汇编了,汇编总是会给我们一些意向不到的东西
对这个问题感兴趣的可以研究下这个汇编代码
这个时候其实单步调试看变量会比printf来得爽,因为printf已经不能够再给我们更多的帮助了。

解析下汇编里面的内容,dp的值是有进行了一个取反操作,但是一个核心的点,汇编代码把r4的值放回到内存中的操作,从结果上来看是不成功的,但是printf的时候,实际用的是r4的值来打印,但是数组打印用的是内存的地址值。
明天让老王修改编译优化等级再测试看看
很多人说嵌入式简单,我就说如果遇到这样的问题,没有单片机的知识,不懂汇编,你玩个蛋蛋哦。

浏览 1608
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报