KEIL C51程序中如何嵌入汇编?

KEIL C51程序中如何嵌入汇编?,第1张

模块内接口:

使用如下标志符:

#pragma

asm

汇编语句

#pragma

endasm

注意:如果在c51程序中使用了汇编语言,注意在Keil编译器中需要激活Properties中的

“Generate

Assembler

SRC

File”

和“Assembler

SRC

File

”两个选项

1、把"xx.c"加入工程中,右击"xx.c"选择“options

for

file"xx.c"

选择

“Generate

Assembler

SRC

File”和“Assemble

SRC

File”打上黑勾有效;

2、根据选择的编译模式,把相应的库文件象加"xx.c"一

样加入工程中并放在"xx.c"下面,如smail模式下选"keil\c51\lib\c51s.lib"

加入工程中,如果要进行浮点运算把"keil\c51\lib\c51fpl.lib"也加入工程中。

即:

Keil

安装目录下的

\C51\LIB\

目录的LIB

文件如下:

C51S.LIB

-

没有浮点运算

Small

model

C51C.LIB

-

没有浮点运算的

Compact

model

C51L.LIB

-

没有浮点运算的

Large

model

C51FPS.LIB

-

带浮点运算的

Small

model

C51FPC.LIB

-

带浮点运算的

Compact

model

C51FPL.LIB

-

带浮点运算的

Large

model

3、在"xx.c"头文件中加入优化:比如#pragma

OT(4,speed)

4、在"xx.c"中加入汇编代码

#pragma

ASM

Assembler

Code

Here

#pragma

ENDASM

5、编译生成xx.hex

例:

#include

void

delay(void)

{

#pragma

asm

MOV

R5,#5

DEL:

MOV

R6,#2

DEL1:

MOV

R7,#255

DJNZ

R7,$

DJNZ

R6,DEL1

DJNZ

R5,DEL

MOV

A,P1

CPL

A

MOV

P1,A

#pragma

endasm

}

void

delay1(unsigned

int

cnt)

{

while(cnt--)

}

void

main()

{

while(1)

{

delay1(1000)

P1=0x55

delay()

}

}

*** 作方法如下:

*** 作设备:戴尔笔记本电脑

*** 作系统:win10

*** 作程序:keil5

1、先打开KEIL软件。

2、依次点击“project”——“new project”新建一个项目。

3、点开ATMEL选中AT89C51,依次点“确定”——“是” 。

4、点击设置图标,切换到output选项卡。

5、勾选Create HEX FILE。

6、在新d出的界面点击“Add Files to Group Source Group 1”。

7、选中c文件后,点击“Add”。

8、点击编译图标即可 。

keil编译汇编程序跟编译C程序 *** 作方法是一样的。步骤如下:

1、建一个工程

2、添加或新建一个汇编文件

3、编辑这个汇编文件程序

4、点击编译命令进行编译

如果没有错误就可以生成HEX文件了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11816699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存