用户名: 密  码:
英达社区 / 加入收藏 / 设为首页
网站首页 | 学校简介 | 就业中心 | 软件测试 | 企业外包 | 单片机开发 | ARM开发 | DSP开发 | PLC开发 | 在线咨询 | 在线报名 | 联系我们
   高新:029-88259409,88278304   小寨:029-85399057, 85268103
您所在的位置:首页 >> 单片机、ARM、DSP >> 正文
keil c6.20c 直接嵌入汇编的方法
http://www.yd-itedu.com/  添加日期:07-05-11 11:17:31  来源:    进入论坛
//<asm.h>
#ifdef ASM
         unsigned long shiftR1(register unsigned long);
#else    
         extern unsigned long shiftR1(register unsigned long);
#endif
//end of asm.h

//<asm.c>
#define ASM
#include <asm.h>
#include <reg52.h>
#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);
}
//end of asm.c
将此源文件加入要编译的工程文件,
将光标指向此文件,选择右键菜单“option for file 'asm.c'”,
将属性单“properties”中的“Generate Assembler SRC File”“Assemble SRC File”
两项设置成黑体的“√”将“Link Public Only”的“√”去掉,再编译即可。
用此方法可以在c源代码的任意位置用#pragma asm和#pragma endasm嵌入汇编语句。
但要注意的是在直接使用形参时要小心,在不同的优化级别下产生的汇编代码有所不同,
可以察看对应的.lst文件看一看,得到正确的优化级别后,#pragma OT(x,speed)锁定
优化级别(这里的值是0-9)。
上一篇:
下一篇:
 
最新动态
就业明星 更多>>
技术文章
推荐论坛
英达概况 | 在线报名 | 在线咨询 | 联系我们
版权所有: 西安英达科技培训学校
电话:029-88259409 88278304 传真:88259409 E_mail:tukx@21cn.com
高新校区:西安市太白南路263号新一代国际公寓C座1508室(太白南路与科技路什字东南角)
小寨校区:西安市雁塔西路161号 世纪经典大厦A座1906室(小寨南纬二街什字东50米)