在C51语言中如何嵌入汇编语言

在51单片机编程中,有时在C语言中会嵌入汇编语言,我按照书上编写了一个程序:#include<reg51.h>voidmain(void){P2=1;#pragmaasm... 在51单片机编程中,有时在C语言中会嵌入汇编语言,我按照书上编写了一个程序:
#include<reg51.h>
void main(void)
{
P2=1;
#pragma asm
mov r7, #250
de:mov r6, #250
djnz r6, $
djnz r7, de
#pragma endasm
P2=0;
}

书上介绍的步骤是:
(1)在C51中加入:
#pragma asm
;assembler code here
#pragma endasm
(2) 在产uVision2 编辑环境的Project窗口中包含汇编代码的C文件上单右键,选择“Options for...",单击“Generate Assember SRC File”和“Assemble SRC File”选择框,使检查框由灰色变成黑色
(3)根据选择的编译模式,把相应的库文件(如Small模式时,是keil\C51\Lib|C51S.Lib)加入工程中,该文件必须作为工程的最后文件。
(4) 编译,即可生成目标代码。

前面两步没问题,但第三步作为一名初学者来说真的不知道该怎么做,请单片机编程高手们指点一下,具体该如何操作呀?
展开
 我来答
NJGQZF
推荐于2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1247万
展开全部

keil C 语言中嵌入汇编语言进行混合编程,方法如下:

1、在C 文件中要嵌入汇编代码片以如下方式加入汇编代码

#pragma ASM

; Assembler Code Here

#pragma ENDASM

2、在Project 窗口中包含汇编代码的C 文件上右键,选择“Options for ...”

在弹出的对话框中,点击右边的

“Generate Assembler SRC File”

和“Assemble SRC File”

使检查框由灰色变成黑色(有效)状态

3 、根据选择的编译模式, 把相应的库文件( 如Small 模式时, 是

Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最后文件,在默认

安装盘KEIL/C51/LIB/C51S.Lib

4、编译,即可生成目标代码

实例:

#include<reg52.h>

#define uchar unsigned char

sbit LED1=P1^0;

//C 嵌入汇编例程

void delay_ms(void)

{

#pragma asm

MOV R0,#0FFH

MOV R1,#0FFH

D_LOOP1:

DJNZ R0,D_LOOP1

MOV R0,#0FFH

DJNZ R1,D_LOOP1

#pragma endasm

}

void main(void)

{

uchar i;

P1 = 0xFF;

while(1)

{

i++;

delay_ms();

if(i>=7)

{

LED1 =~LED1;

i=0;

}

}

}

匿名用户
推荐于2017-11-27
展开全部
右击工程的文件夹 把库文件添加进去 像添加文件一样
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_Seika
2009-04-20 · 超过27用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:0
展开全部
建议: 用C语言做个框架,编译后改为汇编框架,填入汇编程序,一般可以保证和C语言兼容.注意格式
_asm
{
.......
........
......
}
=====================================================
把asm作关键字,其后的汇编用大括号阔起

如:
void set_time(void)
{
asm
{
del1:
mov r4,#0fh
del2:
mov r5,#0fh
djnz r5,del2
djnz r4,del1
}
}

void set_time(void)
{ asm del1:
asm mov r4,#0fh
asm del2:
asm mov r5,#0fh
asm djnz r5,del2
asm djnz r4,del1
}
还有编译器的设置问题
===================================================
KEILC51中是可以直接嵌入汇编,方法为#Pragma asm 汇编行 #pragma ,注意在写汇编之后要
记得加 END 这样子就OK了。
参考资料:http://www.hificat.com/data/Article/apply/200801/2311.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式