关于C51的汇编

2019-07-15 10:41发布

我现在在做课设,规定要用汇编写代码。我想用keil写C程序,编译得到汇编代码。C程序编译出来的hex文件是能按我预期的去运行的。
但是同一程序的,用keil编译出来的汇编a.asm和b.asm(勾选Generate Assembler SRC File”和 “Assemble SRC File”),我建立新工程,把两个汇编加进工程中,编译,产生了好多警告
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C?FPMUL
    MODULE:  main.obj (MAIN)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C?FPADD
    MODULE:  main.obj (MAIN)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C?CASTF
    MODULE:  main.obj (MAIN)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C?SIDIV
虽然能生成hex文件,但是把hex文件烧进单片机,它没我按照我预想的去工作,(C程序编译出来的hex文件是能按我预期的去运行的。
问题一:我这样生成的汇编功能真的能跟C程序一样吗

问题二:我发现那些警告的意思是 有指令要跳转到不存在的地方,我在C程序调试的汇编窗口找到了那些地方,那些地方对应着  汇编的指令中间。也就是说跳转的位置是另一条指令的其中一个字节。怎么办
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。