您的位置 首页 软件

在Keil C51函数中参加ASM代码

使用C51进行单片机编程是事半功倍的事,但是很多算法上以及编译上的问题,往往使用ASM代码更为方便又高效。但不知什么原因,Keil在实现C51…

运用C51进行单片机编程是事半功倍的事,可是许多算法上以及编译上的问题,往往运用ASM代码更为便利又高效。但不知什么原因,Keil在完成C51搀杂ASM代码比SDCC费事许多,办法如下:

预处理指令 #pragma asm 开端ASM代码
预处理指令 #pragma endasm 完毕ASM代码

假如就这样直接编译的话,会出现以下过错:
error C272: asm/endasm requires src-control to be active

解决办法:在 Files Toolbar 中选中当时C51文件,点右键检查文件选项,将 Generate Assembler SRC File 与 Assemble SRC File 的勾选由灰色变为黑色,即便这两项有用!

这时进行编译没有问题,可是Link时产生了两个正告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL

解决办法是需要在 Source Group 中增加一个 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

LIB 方件在 Keil 装置目录下的 \C51\LIB\ 目录中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/274675.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部