KEIL中编译汇编程序出现警告,如何处理?
源程序如下:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV R0,#10H
MOV R1,#30H
MOV A,#00H
LOOP:MOV @R1,A
INC R1
INC A
DJNZ R0,LOOP
SJMP $
END
出错信息如下:
Build target 'Target 1'
assembling protues_exp1.asm...
assembling STARTUP.A51...
linking...
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 0000H
TO: 003CH
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
ADDRESS: 0047H
Program Size: data=9.0 xdata=0 code=76
creating hex file from "protues_exp1"...
"protues_exp1" - 0 Error(s), 3 Warning(s).
请不要告诉我删除startup.a51。删除该程序警告虽然消除了,但运行结果是错误的。
追问:是的,但是运行后查看30H~3FH全部为零,我不知道原因何在。用μ3和μ4运行的结果都是如此。你用KEIL运行后的结果是正确的吗?
答案:“请不要告诉我删除startup.a51。删除该程序警告虽然消除了,但运行结果是错误的。”
运行结果错误在别的方面。
从仿真结果来看,30H~3FH放置从00H到0FH的数,这不就是你所需的运行结果吗?
其他:你用汇编写的程序是可以删除startup.a51的,startup.a51是为C语言准备运行环境的。
你说你的程序会错误,你把MOV R2,A
看下R2的值还会错不?
上一个:急求retf 0020 这条汇编语句的解释
下一个:汇编小问题