打印
[STM32F4]

程序发现一个很离奇的问题,求解

[复制链接]
1375|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
weizhiwuxian|  楼主 | 2021-10-14 11:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef unsigned dat8 ,Act1_AlarmInfoCode ;

dat8 = 0x01 << 16;//SIG_ERR_B_DOWN_NOP;
               
Act1_AlarmInfoCode = dat8 ;

C转成的汇编
   334:                 dat8 = 0x01 << 16;//SIG_ERR_B_DOWN_NOP;
   335:                  
0x080033AC F44F3480  MOV           r4,#0x10000
   336:                 Act1_AlarmInfoCode = dat8 ;
   337:                  
0x080033B0 495B      LDR           r1,[pc,#364]  ; @0x08003520
0x080033B2 700C      STRB          r4,[r1,#0x00]


最后 Act1_AlarmInfoCode 会等于0,不是和dat8一样的值, 为什么???百思不能解

使用特权

评论回复
沙发
littlelida| | 2021-10-14 15:31 | 只看该作者
是不是你给左移没了?
不都是0么

使用特权

评论回复
板凳
九子帝王| | 2021-10-14 17:18 | 只看该作者
你看下你的dat8是不是也是0,左移太多了吧

使用特权

评论回复
地板
elife| | 2021-10-15 08:09 | 只看该作者
不太明白,dat8 ,Act1_AlarmInfoCode究竟是类型还是变量,编译可以正常通过?

使用特权

评论回复
5
ayb_ice| | 2021-10-15 08:28 | 只看该作者
本帖最后由 ayb_ice 于 2021-10-15 08:31 编辑

STRB          r4,[r1,#0x00]从汇编看,目标变量是字节变量,所以是0,变量定义有问题

使用特权

评论回复
6
luhailiang| | 2021-10-15 11:17 | 只看该作者
编译过不了吧?

使用特权

评论回复
7
coshi| | 2021-11-4 20:39 | 只看该作者
看不懂汇编语言啊

使用特权

评论回复
8
zljiu| | 2021-11-4 20:43 | 只看该作者
移位出问题了吧

使用特权

评论回复
9
wiba| | 2021-11-4 20:46 | 只看该作者
应该不会报错的

使用特权

评论回复
10
tfqi| | 2021-11-4 20:50 | 只看该作者
为什么都是零呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

14

帖子

2

粉丝