keil c6.20c 直接嵌入?yún)R編的方法
我要EDA網(wǎng) 發(fā)布日期:2005-11-2 瀏覽次數(shù):390 | // #ifdef ASM unsigned long shiftR1(register unsigned long); #else extern unsigned long shiftR1(register unsigned long); #endif //end of asm.h // #define ASM #include #include #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嵌入?yún)R編語句。 但要注意的是在直接使用形參時(shí)要小心,在不同的優(yōu)化級(jí)別下產(chǎn)生的匯編代碼有所不同, 可以察看對(duì)應(yīng)的.lst文件看一看,得到正確的優(yōu)化級(jí)別后,#pragma OT(x,speed)鎖定 優(yōu)化級(jí)別(這里的值是0-9)。 |
|
|