首页 > 家居生活 > 养生美容 >

KEIL汇编包含REG51.INC提示重复定义

来源:互联网 2023-02-20 17:14:29 版权归原作者所有,如有侵权,请联系我们

使用Keil 进行汇编语言编程时,在加入REG51.INC后会出现error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL,这是由于编译器默认是定义了特殊寄存器的,而REG51.INC又对特殊寄存器进行了定义,导致重复定义。解决办法有两种,具体见下面操作。OY0办公区 - 实用经验教程分享!

工具/原料

  • Keil 4

方法/步骤

  • 1

    打开Keil,新建一个汇编语言文件,在其中输入汇编代码,同时在最开头加入OY0办公区 - 实用经验教程分享!

    $INCLUDE (REG51.INC)OY0办公区 - 实用经验教程分享!

    即导入51寄存器的头文件。OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 2

    将加入了$INCLUDE (REG51.INC)的汇编源文件进行编译,可以看到,编译结果窗口输出了一连串的error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOLOY0办公区 - 实用经验教程分享!

    而每个ERROR都指向REG51.INCOY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 3

    出现这种问题的原因在于REG51.INC对特殊寄存器进行了定义,而编译器默认又对特殊寄存器进行了定义。解决办法就是取消默认的特殊寄存器定义。OY0办公区 - 实用经验教程分享!

    方法1:可以选择汇编源文件,在弹出的列表中选择“Options for FIle:xxx”,其中xxx是具体的文件名。OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 4

    在弹出的对话框中,选择A51页,找到Special Function Registers,将它下面的Define 8051 SFR Names取消勾选。OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 4相关内容未经授权抓取自百度经验
  • 5

    对取消Define 8051 SFR Names勾选的工程进行重新编译,可以看到令人讨厌的error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL没有了。OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 6

    另一种方法不需要取消Define 8051 SFR Names,只要在汇编源文件的开头增加一个:$NOMOD51即不适用MOD51。OY0办公区 - 实用经验教程分享!

    KEIL汇编包含REG51.INC提示重复定义OY0办公区 - 实用经验教程分享!

  • 注意事项

    • $NOMOD51应放到汇编源文件的开头

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!OY0办公区 - 实用经验教程分享!


    标签: 明星汇编包含提示重复

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号