新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > keil c6.20c嵌入?yún)R編的源碼分析

        keil c6.20c嵌入?yún)R編的源碼分析

        作者: 時(shí)間:2010-08-23 來源:網(wǎng)絡(luò) 收藏

        //asm.h>
        #ifdef ASM
        unsigned long shiftR1(register unsigned long);
        #else
        extern unsigned long shiftR1(register unsigned long);
        #endif
        //end of asm.h

        本文引用地址:http://www.104case.com/article/151631.htm

        //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
        將此源文件加入要編譯的工程文件,將光標(biāo)指向此文件,選擇右鍵菜單option for file asm.c”,將屬性單“properties”中的“Generate Assembler SRC File”“Assemble SRC File”兩項(xiàng)設(shè)置成黑體的“√”將“Link Public Only”的“√”去掉,再編譯即可。用此方法可以在c源代碼的任意位置用#pragma asm和#pragma endasm語句。但要注意的是在直接使用形參時(shí)要小心,在不同的優(yōu)化級(jí)別下產(chǎn)生的代碼有所不同,可以察看對(duì)應(yīng)的.lst文件看一看,得到正確的優(yōu)化級(jí)別后,#pragma OT(x,speed)鎖定優(yōu)化級(jí)別(這里的值是0-9)。



        關(guān)鍵詞: 源碼 分析 匯編 嵌入 c6.20c keil

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 筠连县| 新河县| 宁国市| 富顺县| 崇明县| 伊宁市| 兴安县| 玉溪市| 双峰县| 新沂市| 娄底市| 那坡县| 凤山市| 新营市| 满城县| 江城| 咸阳市| 金堂县| 罗田县| 赣州市| 新宾| 延长县| 乐昌市| 冀州市| 澄江县| 武穴市| 肥乡县| 高唐县| 定襄县| 建瓯市| 阿勒泰市| 乐至县| 循化| 永寿县| 塘沽区| 濮阳县| 双桥区| 哈密市| 香河县| 深泽县| 安新县|