51单片机中,C语言中怎么加入汇编语言

前后缀已经加完了,src的两个选项也打条了,可是编译之后错误更多了

1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:
2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”
和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最
后文件;
4、编译,即可生成目标代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-29
C中嵌入汇编的程序
//keil c6.20c 直接嵌入汇编的方法!
//<asm.h>
#ifdef ASM
unsigned long shiftR1(register unsigned long);
#else
extern unsigned long shiftR1(register unsigned long);
#endif
//end of asm.h

//<asm.c>
#define ASM
#include <asm.h>
#include <reg52.h>
#pragma OT(4,speed)
unsigned long shiftR1(register unsigned long x)
{
#pragma asm
clr c
mov a,r4
rrc a
mov r4,a

mov a,r5
rrc a
mov r5,a

mov a,r6
rrc a
mov r6,a

mov a,r7
rrc a
mov r7,a

#pragma endasm
return(x);
}
第2个回答  2011-08-06
分等级,C语言中可以嵌入汇编,但是汇编不能嵌入C语言,其实在C语言中的文件库里已经对汇编语言的各种语言段进行定义了,但是用的时候要先进行相应库的调用。
如楼上,对于定时来说,还是汇编语言准确的,这个要按需求来的,有的时候C语言中加入汇编,不仅方便,而且更容易修改,但是在碰到一些有浮点数的处理时,就不得不用C语言了本回答被提问者采纳
第3个回答  2011-07-28
C语言的执行效率比汇编高很多,为什么要加汇编呢,C语言中不直接加入汇编,少数的汇编指令你可以在开头宏定义一下,比如#define _NOP()_ nop();追问

谁说不能加的?而且汇编的延时要准确

追答

我有说不能加吗

第4个回答  2011-07-28
语言能够混合用吗?追问

当然可以

相似回答