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

[复制链接]
2171|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究竟是类型还是变量,编译可以正常通过?
ayb_ice 发表于 2021-10-15 08:28 | 显示全部楼层
本帖最后由 ayb_ice 于 2021-10-15 08:31 编辑

STRB          r4,[r1,#0x00]从汇编看,目标变量是字节变量,所以是0,变量定义有问题
luhailiang 发表于 2021-10-15 11:17 | 显示全部楼层
编译过不了吧?
coshi 发表于 2021-11-4 20:39 | 显示全部楼层
看不懂汇编语言啊
zljiu 发表于 2021-11-4 20:43 | 显示全部楼层
移位出问题了吧
wiba 发表于 2021-11-4 20:46 | 显示全部楼层
应该不会报错的
tfqi 发表于 2021-11-4 20:50 | 显示全部楼层
为什么都是零呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

14

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部