本文作者:qiaoqingyi

c汇编混合编程(c语言和汇编语言混合编程实例)

qiaoqingyi 03-09 127

  1.汇编语句写法

  2.设置嵌套了汇编的C文件属性

  勾选这两项为黑色

  4.汇编常包含的库文件。自己看着选

  存储模式是small模式添加这个文件

  、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

  、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

  C51下加入汇编代码

  使用如下标志符:

  #pragmaasm

  ;汇编语句

  #pragma endasm

  注意: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模式下选"keilc51libc51s.lib"加入工程中,如果要进行浮点运算把"keilc51libc51fpl.lib"也加入工程中。

  在 Keil 安装目录下的 C51LIB 目录的LIB 文件如下:

  C51S.LIB - 没有浮点运算的 Small model

  C51C.LIB - 没有浮点运算的 Compact model

  C51L.LIB - 没有浮点运算的 Large model

  C51FPS.LIB - 带浮点运算的 Small model

  C51FPC.LIB - 带浮点运算的 Compact model

c汇编混合编程(c语言和汇编语言混合编程实例)

  C51FPL.LIB - 带浮点运算的 Large model

  3、在"xx.c"头文件中加入优化:比如#pragma OT(4,speed)

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

  #pragma ASM

  ;Assembler Code Here

  #pragma ENDASM

  5、编译生成xx.hex

  注意:

  没有做第一步会有如下警告:'asm/endasm' requires src-control to be active

  没有做第二步会有如下警告:UNRESOLVED EXTERNAL SYMBOL;

  REFERENCE MADE TO UNRESOLVED EXTERNAL等

  没有做第三步会有如下警告:UNDEFINED SYMBOL (PASS-2)

  原文链接:https://www.eeworld.com.cn/mcu/article_2016111831536.html

阅读
分享