找回密码
 立即注册
查看: 54|回复: 0

关于C51的汇编移植为C251的汇编一个要注意的小细节

[复制链接]
  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 36 天

    [LV.5]常住居民I

    22

    主题

    106

    回帖

    364

    积分

    中级会员

    积分
    364
    发表于 2024-5-13 11:23:03 | 显示全部楼层 |阅读模式
    本帖最后由 newlined 于 2024-5-13 11:55 编辑

    我有一个程序,原来在KEIL C51下编译,CPU用的是STC8H单片机,后来CPU升级为STC32G12K128,编译环境改为C251,运行一直不正常,后来发现,是程序中定义位变量的方式出了问题,以前定义位变量用的语句是:ABC    BIT     10H  ,在STC8H单片机中,内部RAM的20H到2FH是可以位寻址的,位地址范围在0~7F之间,这样定义是可以的,STC32G12K128内部RAM的20H到7FH都是可以位寻址,位地址范围在0~2FFH之间,如果定义最后一位岂不是要这样:ABC   BIT  2FFH,地址表示部分超了一个字节了,可能不识别。后来使用 ABC        BIT        22H.0 的方式定义,程序就正常运行了。
    回复 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-17 12:49 , Processed in 0.052838 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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