找回密码
 立即注册
查看: 637|回复: 5

C51嵌入汇编问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:437
  • 最近打卡:2025-05-04 09:25:44
已绑定手机

229

主题

328

回帖

1483

积分

金牌会员

积分
1483
发表于 2024-1-11 08:43:40 | 显示全部楼层 |阅读模式
M)~I)1]41OSB7FPBWB$GEVT.png


首先在要嵌入汇编的c文件中勾上这两项

{D`O5VT6}@}CB_)L6OHI$ZD.png


我选择的默认内存是small模式,在项目中添加C51S.LIB

JY_606_TD%P1]BM0H]63E07.png


因为项目中有用到结构体,视乎这个模式下不支持结构体

9AWGARCN]ELRTCS47}LYHGW.png


这应该算是个BUG吧
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-1-11 09:39:13 | 显示全部楼层
本帖最后由 LAOXU 于 2024-1-11 17:49 编辑

汇编 不支持结构体

如要使用 C的结构体, 先引用外部C定义的结构体首地址, 汇编中实际地址需自行计算(+偏移量)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-1-11 10:03:21 | 显示全部楼层
检查一下是不是结构体的用法有问题,附件例程供参考。

嵌套汇编-打印结构体.zip

41.1 KB, 下载次数: 66

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2024-04-19 08:18:54

34

主题

85

回帖

670

积分

高级会员

积分
670
发表于 2024-1-12 23:12:02 | 显示全部楼层
你的c代码里,把关键字idata定义成变量了,因为你把这个关键字书写为大写的,
所以c编译器可以通过,但是A51汇编器是不区分大小写的。
结果就是C51编译成功,但是A51汇编错误。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-04 14:23:56
已绑定手机

13

主题

1257

回帖

2983

积分

金牌会员

积分
2983
发表于 2024-1-25 15:01:23 | 显示全部楼层
idata、data不宜用做自定义的变量,不管是C还是ASM。----这个问题还真不容易发现,学到了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-25 16:10:40 | 显示全部楼层
21cns*** 发表于 2024-1-25 15:01
idata、data不宜用做自定义的变量,不管是C还是ASM。----这个问题还真不容易发现,学到了 ...

啊?不仅是这两个 是所有的关键字都不能用作变量。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 19:57 , Processed in 0.132764 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表