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

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:

你的错误代码是 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”命令表示结束)

 

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-31
你将文件后缀改为:asm 应该就可以,汇编存成了C文件
第2个回答  2014-12-30
需要帮你写程序吗
第3个回答  2014-12-30
你建立的是.c文件吧?汇编应该建立的是.asm文件。

keil的编译错误:error c129:missing';'before'0000'
你的错误代码是 error c129: 这是一个C语言方面的语法错误,说明你的文件被保存为C文件(文件名为.c后缀)。我用你这段程序放在keil编译器中试验过,当程序保存为c文件并编译时,会出现如你所示的error c129的错误且指向程序的第一句代码处;若将文件另存为汇编文件(文件名为.asm后缀)再进行编...

Keil编译一直错误error C129: missing''
Keil 编译一直错误error C129: missing ';' before 'char'是因为缺少';,解决步骤如下:1、首先第一步就是进行打开Dev C++ 5.11,然后进入下图界面。2、接着就是进行输入下图的代码。3、然后就是进行点击下图框内然后进行运行选项即可。4、接着就是进行下图框内 编译 选项,如下图所示。5、然后...

keil errorC129:missing ';'before'sbit'
原因:因为缺少';。解决步骤如下:1.第一步是打开devc++5.11,然后进入以下界面。2.接下来,输入以下代码。3.然后单击下面的框并运行选项。4.接下来,在下面的框中选择compile选项,如下图所示。5.然后您可以在下面的框中看到错误。6.下一步是通过搜索英语单词来寻找期望;'before'z'...

...\\INC\\ATMEL\\AT89S52.H(1): error C129: missing ';' before...
(1)这个肯定是你的代码写错了导致程序在编译的时候与头文件里面的某些东东给配对了,认真检查吧,程序、函数中每条c语句后有个分号。要不就贴出来,让大家看看。(2)不用去网上下啊,安装完后在keil的C:\\Keil\\C51\\INC\\Atmel,就有,其实用#include<reg51.h>就行。

keil错误:error c129: missing ';' before 'unsigned' 程序怎么修改还是...
遇到"error c129: missing ';' before 'unsigned'"的Keil编译错误,解决方法其实很简单。首先,启动DevC++ 5.11,定位到你的代码编辑界面。接着,检查第6行代码,发现编译器提示缺少分号(';')。这个错误表明在'unsigned'关键字前面应有一个分号。解决步骤是:找到并确保在该行末尾添加一个分号。如果...

...error C129: missing ';' before '0000'错误。求
文件保存的时候后缀名是“.asm”,例如test.asm。 下一步当你选择加入该文件的时候,文件类型选择“所有类型”,就可以把这汇编源文件显示出来并加进去了!!

...FJZ.C(2): error C129: missing ';' before 'code' 麻烦大神帮忙改...
unsignedint,这也是一样的问题,应该是 unsigned int voidmain(void),这也有一个空格的,应该这样 void main(),这用一个空括号就行。voidt0(void) interrupt 1 using 0 ,为什么不打空格呢?都犯一个毛病呢 应该是 void t0() interrupt 1 using 0,时刻别忘了:空格,空格,...

...file 'i2c.h'和error C129: miss‘;’before ’code‘
你没把I2C.H这个头文件和这个文件放在同一个目录下,所以编译器表示没找到。uchar不是一种数据类型,必须在使用之前先定义#define uchar unsigned char

单片机Keil提示errorc (129):missing";" before"void"
unsigned char z后加分号 定义ys函数后也要加。错误信息已经很清楚了:void之前缺少分号。请采纳

687165.C(1): error C129: missing ';' before '0001'在keil中运行不了...
你的错误代码是 error c129: 这是一个C语言方面的语法错误,说明你的文件被保存为C文件(文件名为.c后缀),但你这段命令明显是汇编语言,是不能保存为C文件的。我用你这段程序放在keil编译器中试验过,当程序保存为c文件并编译时,会出现如你所示的error c129的错误且指向程序的第一句代码处;...

相似回答