keil的编译错误:error c129:missing✀;✀before✀0000✀

2024-12-01 19:01:52
推荐回答(4个)
回答1:

你的错误代码是 error c129: 这是一个C语言方面的语法错误,说明你的文件被保存为C文件(文件名为.c后缀)。

我用你这段程序放在keil编译器中试验过,当程序保存为c文件并编译时,会出现如你所示的error c129的错误且指向程序的第一句代码处;若将文件另存为汇编文件(文件名为.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”命令表示结束)

 

可以看得出,你这段程序应该不是完整的,另有一部份你没有复制出来。你可以根据以上说明,再结合你的实际情况处理你的程序。 祝你成功!

回答2:

你将文件后缀改为:asm 应该就可以,汇编存成了C文件

回答3:

需要帮你写程序吗

回答4:

你建立的是.c文件吧?汇编应该建立的是.asm文件。