用Keil uVision2编写单片机程序时,如何调用已存档的子程序文件?
答案:2 悬赏:20 手机版
解决时间 2021-03-03 09:32
- 提问者网友:疯孩纸
- 2021-03-02 15:31
$INCLUDE(RESET.ASM),这条语句是什么意思?原本我的程序里面有很多子程序,为了能方便浏览以及更正错误,所以就把一些子程序分别以.ASM格式文件存档了,然后在组程序中使用如这样的语句 $INCLUDE(RESET.ASM),先定义一下,再用CALL RESET 来调用,可是程序就不行了,心虽然没有提示错误,但烧写到开发板就不行了,观察不到原来程序的结果,求解》??
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-03-02 16:41
如果是main.asm中有这句话$INCLUDE(RESET.ASM),简单的说就是在编译main.asm前,编译器先把RESET.ASM这个文件的所有语句放到main文件中,然后再编译main,相当于RESET.ASM是main.asm的一部分代码。
这样设计的话,要求工程里不能再单独编译连接RESET.ASM,这样会出现同名的警告。另一点,RESET.ASM中不能有END的结束符,否则编译器在编译到END后面的代码就不编译了,你的main函数实际就没有被编译,这可能是你烧到开发板上不行的原因。
具体没看到代码,先做如上猜想。不过如果有调试环境的话,单步debug应该能很快发现问题。
这样设计的话,要求工程里不能再单独编译连接RESET.ASM,这样会出现同名的警告。另一点,RESET.ASM中不能有END的结束符,否则编译器在编译到END后面的代码就不编译了,你的main函数实际就没有被编译,这可能是你烧到开发板上不行的原因。
具体没看到代码,先做如上猜想。不过如果有调试环境的话,单步debug应该能很快发现问题。
全部回答
- 1楼网友:轻雾山林
- 2021-03-02 17:08
你好!
这是汇编么?没用过
打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯