是用c语言和汇编混合编的程序,在keil里编译时出现C51 FATAL-ERROR -

作者&投稿:应柿 (若有异议请与网页底部的电邮联系)
keil中c语言和汇编语言混合编程的问题~

这简单啊,先构造一个函数,再用的时候直接调用就行了,型如
函数类型 函数名(形参类型 形参名 )
{
函数的主题或算法
}
比如:
int add(int a,int b)
{
return a+b;
}

int mul(int a,int b)
{
return a*b;
}
void main {
int a,b,m;
int r;
r=add(b,mul(a,m));
print("%d",r);
}
这个的结果就是:先算a*m,再算b+(a*m).
这个看懂了,对变量进行赋值就知道怎么做了。

注释怎么是一个/?应该是://,另外汇编程序有一个选项要勾选

最可能原因是编程不规范,一些.h文件在不同的.c.h文件中重复定义。

程序问题。
LL SEGMENT CODE; // 在程序存储区中定义段
PUBLIC LED; //声明函数
FLAG DATA 20H
DPFLAG DATA 22H
RSEG LL; //函数可被连接器放置在任何地方
LED:
NOP
DISP: MOV P1,#0FFH ;显示函数
MOV P2,#0
MOV DPTR,#TAB
MOV A,DPFLAG
CJNE A,#1,DISP0 ;判断是否有选择按键
SJMP N1
DISP0:MOV P1,#0F8H
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
NOP ;弄两个空指令缓冲下数码管
NOP
MOV P2,#0
N1: MOV A,DPFLAG
CJNE A,#2,DISP1
SJMP N2
DISP1: MOV P1,#0F9H
MOV A,R3
MOVC A,@A+DPTR
MOV P2,A
NOP
NOP
MOV P2,#0
N2: MOV A,DPFLAG
CJNE A,#3,DISP2
SJMP NEND
DISP2: MOV P1,#0FAH
MOV A,R4
MOVC A,@A+DPTR
MOV P2,A
NOP
NOP
MOV P2,#0
NEND: RET
NOP
RET
TAB: DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,40h,0
END
上面是汇编文件,。
#include<reg52.h>
extern void led();
void main()
{
P2=0XFF;
led();
while(1)
{
led();
}
}
这里是C文件。
你试试,我这个工程师可以的

,C语言和汇编语言混合编程,键盘输入 4个数十进制数, 用汇编语言计算这4...
答:CMP BL, 0DH ;和回车符进行比较 JZ END0 ;是, 即结束 CMP BL, '0'JB ERROR ;小于'0'转移 CMP BL, 'F'JA ERROR ;大于'F'转移 CMP BL, '9'JNA A2B ;不大于'9', 就去变换 CMP BL, 'A'JNB A2B ;不小于'A', 就去变换 JMP ERROR ;...

编写一段C语言与汇编程序的回合程序,用汇编程序实现两个64位数的加法...
答:是:include <stdio.h> include <stdlib.h> int main();{ int a,b,c;scanf("%d %d",a,b);//输入a和b的值。c=a+b;//c是两数之和。printf("%d",c);//输出c的值。system("pause");return 0;}

C语言调用汇编程序时,使用哪些寄存器来传递参数?
答:在使用C语言时,要用到和汇编语言的混合编程。若汇编代码较为简洁,则可使用直接内嵌汇编的方法;否则要将汇编程序以文件的形式加入到项目中,按照ATPCS(ARM/Thumb过程调用标准,ARM/Thumb Procedure Call Standard)的规定与C程序相互调用与访问。在C程序和ARM汇编程序之间相互调用时必须遵守ATPCS规则。ATPCS...

键盘上分别输入2位十进制数的被加数和加数,把和用二位十六进制数显示出...
答:解释下混合编程:就是使用C语言 C++ 汇编的语言编写同一程序。这样的好处 1 c语言实现严谨,2 c++实现方便 3 汇编编译的速度快 因为C++兼容C,所以这没什么说的。使用汇编就是 在程序中实现下面的关键字 __asm { .../*这里实现汇编*/ } ...

编操作系统最好用什么语言
答:C和汇编混合编程,要编制一个独立完整的操作系统必须用到机器语言或汇编语言,主流的3种操作系统Windows,Linux,Unix,内核都是用C语言和汇编写的,上层高级特性,比如notepad.exe这样的,和一些不涉及底层的系统程序、模块是用C++写的。看来到这里来的programer不多啊。

如何在64位的Linux系统上使用汇编和C语言混合编程
答:linux平台上的汇编语言风格叫做at&t风格,你可以搜索一下at&t内联汇编规则。一般是asm("") 这样引用内联汇编

单片机是否经常要使用到C语言与汇编语言的混合编程?
答:一般是不需要的。因为随着现在单片机时钟频率越来越高,那么细微的差别基本可不要考虑了。况且,现在的单片机的编译软件,会自动对程序代码优化。如果你对汇编不是特别在行的话,可能用汇编的效果,还不如用C语言编写后软件自动优化来得好!呵呵~

汇编语言和C语言问题混合程序设计
答:type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /setvalue.jsp(2,16) equal symbol expected org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler....

C语言和汇编语言的相互调用
答:比较好的解决办法是C与汇编语言混合编程,即用C编写软件的调度程序、用户界面以及速度要求不高的控制部分,而用汇编语言对速度敏感部分提供最高速度的处理模块,供C调用。这种方法提供了最佳的软件设计方案,做到了兼顾速度效率高和灵活方便。由于本人的毕业设计需要C程序中调用汇编模块的方法来提高ARM定点指令...

求基于AT89C52超声波测距简易设计的源程序,要求用3个LED管显示其测距...
答:求,成为电子工程师进行单片机系统编程时的首先编程语言。在本设计中,由于C语言程序有利于实现较 复杂的算法,汇编语言程序具有较高的效率并且容易精确计算程序运行的时间,而超声波测距器的程序既 有较复杂的距离计算又要求精确计算超声波测距时程序运行的时间,所以本设计采用C语言和汇编语言 混合编程来...