• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > keil c6.20c嵌入匯編源碼編譯方法簡介

    keil c6.20c嵌入匯編源碼編譯方法簡介

    作者: 時間:2012-05-16 來源:網絡 收藏

    //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.czjhyjcfj.com/article/149043.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
    將此源文件加入要的工程文件,將光標指向此文件,選擇右鍵菜單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)。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 安丘市| 洛南县| 林芝县| 阳江市| 合江县| 莱西市| 邛崃市| 龙州县| 铜山县| 喀喇沁旗| 白朗县| 息烽县| 崇左市| 吴川市| 霞浦县| 肇源县| 怀宁县| 镇康县| 黔西| 织金县| 玉田县| 宿州市| 怀集县| 临泽县| 灵石县| 镇赉县| 陈巴尔虎旗| 岗巴县| 霍城县| 梧州市| 阜宁县| 邮箱| 东阿县| 阳原县| 乐昌市| 织金县| 东乌珠穆沁旗| 类乌齐县| 山西省| 南投县| 乌拉特后旗|