51单片机中,C语言中怎么加入汇编语言
答案:5 悬赏:20 手机版
解决时间 2021-01-06 07:41
- 提问者网友:不爱我么
- 2021-01-06 03:51
51单片机中,C语言中怎么加入汇编语言
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-01-06 04:15
1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:
2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”
和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最
后文件;
4、编译,即可生成目标代码。
2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”
和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最
后文件;
4、编译,即可生成目标代码。
全部回答
- 1楼网友:行路难
- 2021-01-06 08:06
C语言的执行效率比汇编高很多,为什么要加汇编呢,C语言中不直接加入汇编,少数的汇编指令你可以在开头宏定义一下,比如#define _NOP()_ nop();追问谁说不能加的?而且汇编的延时要准确追答我有说不能加吗
- 2楼网友:七十二街
- 2021-01-06 06:43
语言能够混合用吗?追问当然可以
- 3楼网友:人類模型
- 2021-01-06 05:19
C中嵌入汇编的程序
//keil c6.20c 直接嵌入汇编的方法!
//
#ifdef ASM
unsigned long shiftR1(register unsigned long);
#else
extern unsigned long shiftR1(register unsigned long);
#endif
//end of asm.h
//
#define ASM
#include
#include
#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);
}
//keil c6.20c 直接嵌入汇编的方法!
//
#ifdef ASM
unsigned long shiftR1(register unsigned long);
#else
extern unsigned long shiftR1(register unsigned long);
#endif
//end of asm.h
//
#define ASM
#include
#include
#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);
}
- 4楼网友:独钓一江月
- 2021-01-06 04:23
分等级,C语言中可以嵌入汇编,但是汇编不能嵌入C语言,其实在C语言中的文件库里已经对汇编语言的各种语言段进行定义了,但是用的时候要先进行相应库的调用。
如楼上,对于定时来说,还是汇编语言准确的,这个要按需求来的,有的时候C语言中加入汇编,不仅方便,而且更容易修改,但是在碰到一些有浮点数的处理时,就不得不用C语言了
如楼上,对于定时来说,还是汇编语言准确的,这个要按需求来的,有的时候C语言中加入汇编,不仅方便,而且更容易修改,但是在碰到一些有浮点数的处理时,就不得不用C语言了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯