① asm 文件编译出错error :org_2 can not fit absolute secti
你的错误代码是errorc129:这是一个C语言方面的语法错误,说明你的文件被保存为C文件(文件名为.c后缀)。我用你这段程序放在keil编译器中试验过,当程序保存为c文件并编译时,会出现如你所示的errorc129的错误且指向程序的第一句代码处;若将文件另存为汇编文件(文件名为.asm后缀)再进行编译,则不会出现c129的报错。 现在将这段程序保存为.asm文件,并将程序整理为以下形式: ORG 0000H LJMP START ORG 000BH ; LJMP INTT0; START: MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H INC R0 DJNZ R7,INIT MOV 72H,#10 MOV 75H,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#03CH SETB EA SETB ET0 SETB TR0 START1: LCALL SCAN LCALL KEYSCAN SJMP START1; DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET; DL20MS:对于以上程序段,不知道整理出来之后是否与你的原代码相同,但其中有一点需要说明,汇编文件中的分号“;”的作用与C文件中的“ //”作用类似,它后面紧跟的是注释内容。 你这段程序,若按以上整理,那么所有命令后面的分号“ ;”都可以不要的。不过,也有可能你确实使用了分号的作用,将后面一些命令作了屏蔽处理,则此处不另作说明。下面将整理后的程序进行编译,会出现以下报错情况:错误、警告的解释: 第4行的错误原因是:标志符号“INTT0”没有定义; 第18行的错误原因是:标志符号“SCAN”没有定义; 第19行的错误原因是:标志符号“KEYSCAN”没有定义; 第27行的警告原因是:代码结束处没有“END”命令;(注:所有汇编文件结尾处都应有一句“END”命令表示结束) 可以看得出,你这段程序应该不是完整的,另有一部份你没有复制出来。你可以根据以上说明,再结合你的实际情况处理你的程序。祝你成功!
② 51单片机 keil软件编译时出错 Text1.asm(7): error A45: UNDEFINED SYMBOL (PASS-2)
你编辑的程序开头位置出错了,应该如下
ORG 0000H
LJMP MAIN
ORG 0030H ; 主程序入口
MAIN: SETB P2.6 ; 置无线发射模块为发射状态
CLR P1.0 ; P1.0口置0
MOV A,P2
JNB ACC.4,PR1
以下雷同
③ 汇编语言用keil编译报错 2.asm(11): error A46: CODE-ADDRESS EXPECTED,求解,谢谢!
ORG 0000H ;复位时程序从此开始
SJMP START ;跳到START进行初始化
ORG 0003H ;外部引脚P3.2中断入口
11)AJMP INT0;--INT0 是关键字,不能当作标号
ORG 000BH ;定时器T0中断入口
AJMP TIMER0 ;跳转到标号TIMER0处(定时器中断服务子程序)
ORG 0030H ;初始化程序从30H开始
----------
AJMP 后面,应该写“标号”。
START、TIMER0,都是正确的标号。
INT0,在 KEIL 中的关键字,就不能当作标号。