資源描述:
《如何在keil中c語言和匯編語言混用》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、單片機--軒文'sBlog頁碼,1/21EDN首頁博客首頁用戶登陸
2、注冊軒文'sBlog網(wǎng)站首頁
3、博客首頁
4、論壇
5、小組
6、個人主頁
7、相冊
8、管理個人信息1+加為好友+發(fā)送站內短信+我的博客精華關于在KEILC51中嵌入?yún)R編以及C51與A51間的相互調用博主:duanwenbo2004+我的推薦文章發(fā)表于2009/6/513:17:15如何在KEILC51(v6.21)中調用匯編函數(shù)的一個示例[ycong_kuang]最近加入的小組有關c51調用匯編的方法已經(jīng)有很多帖子講到,但是一般只講要點,很少有對整個過程作詳細描述,對于初學者是不夠的,這里筆者通過
9、一個簡單例子對這個過程進行描述,希望能對初學者有所幫助。幾年來,在這個論壇里筆者得到很EDN助學—FPGpcb制板多熱心人指導,因此也希望A/CPLD學習小藉此盡一點綿薄之力。組在這個例子里,闡述了編寫c51程序調用匯編函數(shù)的一種方法,這個外部函數(shù)的入口參數(shù)是一個字符型變量和一個位變量,返回值是單片機殿堂51入門組一個整型變量。例中,先用c51寫出這個函數(shù)的主體,然后用SRC控制指令編譯產(chǎn)生asm文件,進一步修改這個asm文件就得到我們所博客公告要的匯編函數(shù)。該方法讓編譯器自動完成各種段的安排,提高了匯編程序的編寫效率。step1.按寫普通c51
10、程序方法,建立工程,在里面導入main.c文件和CFUNC.c文件。我的分類相關文件如下:通信技術(3)//main.c文件單片機(8)#includeARM(0)日記(2)#defineucharunsignedcharAVR(1)#defineuintunsignedintFPGA(3)Modesim(2)externuintAFUNC(ucharv_achr,bitv_bflag);博客日歷voidmain(){<2009年10月>bitBFLAG;日一二三四五六ucharmav_chr;27282930123uintmv
11、intrslt;4567891011121314151617mav_chr=0xd4;BFLAG="1";mvintrslt="AFUNC"(mav_chr,BFLAG);18192021222324}252627282930311234567//CFUNC.c文件博客廣告#defineucharunsignedchar#defineuintunsignedint日志檔案uintAFUNC(ucharv_achr,bitv_bflag)2009年份(5){2008年份(7)uchartmp_vchr;2007年份(9)uinttp_vint;最新
12、日志tmp_vchr=v_achr;·利用matlab產(chǎn)生FPGA設計用濾波器tp_vint=(uint)v_bflag;系數(shù)的小技巧returntmp_vchr+(tp_vint<<8);file://D:資料海超單片機--軒文'sBlog.htm2009-12-31單片機--軒文'sBlog頁碼,2/21}·Modelsim中使用tcl語言提高設計效率·Modesim做后仿真的過程step2.在Project窗口中包含匯編代碼的C文件上右鍵,選擇“Optionsfor...”,點擊右邊的“Generate·關于設置QuartusII與M
13、odesim的關AssemblerSRC聯(lián)File”和“AssembleSRCFile”,使檢查框由灰色變成黑色(有效)狀態(tài);·一個關于“概率,先驗概率與后驗概率”的解釋step3.根據(jù)選擇的編譯模式,把相應的庫文件(如Small模式時,是KeilC51LibC51S.Lib)加入工程中,該文件必須作為工最新評論程的最后文件;·兄弟,十分感謝啊?!?.....看看,順便借用step4.build這個工程后將會產(chǎn)生一個CFUNC.SRC的文件,將這個文件改名為CFUNC.A51(也可以通·謝謝啊過編譯選項直接產(chǎn)生CFUNC.A51文·不錯,我
14、現(xiàn)在遇到點麻煩件),然后在工程里去掉庫文件(如C51S.Lib)和CFUNC.c,而將CFUNC.A51添加到工程里。·收藏//CFUNC.SRC文件如下友情鏈接.CFUNC.SRCgeneratedfrom:CFUNC.cNAMECFUNC博客信息?PR?_AFUNC?CFUNCSEGMENTCODE日志總數(shù):21篇?BI?_AFUNC?CFUNCSEGMENTBITOVERLAYABLE評論數(shù)量:33PUBLIC?_AFUNC?BIT訪問次數(shù):23601PUBLIC_AFUNC訪客記錄RSEG?BI?_AFUNC?CFUNC?_AFUNC?
15、BIT:v_bflag?041:DBIT1;#defineucharunsignedchardojxsq大暑;#defineuintun