亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: Keil軟件“C語(yǔ)言”與“匯編”混編—相關(guān)知識(shí)整理 [打印本頁(yè)]

作者: xqn2012    時(shí)間: 2017-11-15 14:09
標(biāo)題: Keil軟件“C語(yǔ)言”與“匯編”混編—相關(guān)知識(shí)整理
給大家分享一個(gè)Keil軟件“C語(yǔ)言”與“匯編”混編教程,給需要 C與匯編 混編的同學(xué)

用 Keil 在C中嵌入?yún)R編  1
在 Keil 中嵌入?yún)R編  2
介紹直接嵌入?yún)R編代碼的方法  4
采用匯編可能會(huì)有的好處  5
Keil C 語(yǔ)言與匯編語(yǔ)言混合編程  7
深入剖析 Keil C51  —— 從匯編到 C51  9
C 語(yǔ)言和匯編語(yǔ)言的變量以及函數(shù)的接口問(wèn)題   14
匯編與 C 語(yǔ)言混合編程的關(guān)鍵問(wèn)題  15
KEIL 段重定位  15

用 Keil 在 C 中嵌入?yún)R編
    早前公布了C和匯編混編的溫度控制器程序,收到一些朋友的詢問(wèn),他們無(wú)法在自己程序中使用我的18B20的匯編子程序或無(wú)法正常通過(guò)混編后的程序編譯。
    其實(shí)在KEIL 中嵌入?yún)R編的方法很簡(jiǎn)單。 如圖一, 在 C 文件中要嵌入?yún)R編的地方用#pragma  asm 和#pragma  endasm分隔開(kāi)來(lái),這樣編譯時(shí) KEIL 就知道這中間的一段是匯編了。


    為了能對(duì)匯編進(jìn)行封裝還要在項(xiàng)目中加入相應(yīng)的封裝庫(kù)文件, 在筆者的項(xiàng)目中編譯模式是小模式所以選用
C51S.LIB。這也是最常用的。這些庫(kù)文件是中 KEIL 安裝目錄下的 LIB 目錄中。 加好后就可以順利編譯了。(注:
我只在 7.0以上版本使用過(guò))


在 Keil 中嵌入?yún)R編
    1、其實(shí)在 KEIL 中嵌入?yún)R編的方法很簡(jiǎn)單。如圖 1,在 C 文件中要嵌入?yún)R編的地方用#pragma asm 和#pragma endasm 分隔開(kāi)來(lái),這樣編譯時(shí) KEIL 就知道這中間的一段是匯編了。  


   2、在有加入?yún)R編的文件中,還要設(shè)置編譯該文件時(shí)的選項(xiàng),如圖 2 所示。

    3、Generate Assembler SRC File 生成匯編 SRC 文件 Assemble SRC File  封裝匯編文件
       (如圖 3 的狀態(tài)為選中)
       選上這兩項(xiàng)就可以在 C 中嵌人匯編了,設(shè)置后在文件圖示中多了三個(gè)紅色的小方塊。

    4、為了能對(duì)匯編進(jìn)行封裝還要在項(xiàng)目中加入相應(yīng)的封裝庫(kù)文件, 在筆者的項(xiàng)目中編譯模式是小模式所以選用 C51S.LIB。這也是最常用的。這些庫(kù)文件是中 KEIL 安裝目錄下的 LIB 目錄中。 加好后就可以順利編譯了

介紹直接嵌入?yún)R編代碼的方法
1、在 C  文件中要嵌入?yún)R編代碼片以如下方式加入?yún)R編代碼:
   #pragma ASM
   ; Assembler Code Here
   #pragma ENDASM
2、在 Project 窗口中包含匯編代碼的 C  文件上右鍵,選擇“Options for ...”,點(diǎn)擊右邊的“Generate Assembler SRC File”和“Assemble SRC File”,使檢查框由灰色變成黑色(有效)狀態(tài);
3、根據(jù)選擇的編譯模式,把相應(yīng)的庫(kù)文件(如 Small  模式時(shí),是 Keil\C51\Lib\C51S.Lib)加入工程中,  該文件必須作為工程的最后文件;


采用匯編可能會(huì)有的好處
C51 編譯器能對(duì) C語(yǔ)言程序進(jìn)行高效率的編譯,生成高效簡(jiǎn)潔的代碼,在大多數(shù)的應(yīng)用場(chǎng)合,采用 C語(yǔ)言編程即可完成預(yù)期的任務(wù),但是,在有些場(chǎng)合還是會(huì)用到匯編,例如在下面的幾種情況下,采用匯編可能會(huì)有很多好處:
1、已有程序的移植:在單片機(jī)領(lǐng)域工作很久的工程人員可能會(huì)保留有很多的早期用匯編語(yǔ)言編制的程序模塊,并且這些模塊已經(jīng)經(jīng)過(guò)實(shí)際應(yīng)用的驗(yàn)證,如果重新用 C編程,可能工作量很大,這時(shí)就可以用嵌入?yún)R編的方式把以前的匯編模塊植入新的應(yīng)用,可以明顯的加快開(kāi)發(fā)的進(jìn)度。
2、局部功能需要足夠短的執(zhí)行時(shí)間:在有些應(yīng)用中,部分的功能模塊需要有很高的執(zhí)行效率,而有些匯編的指令在 C中沒(méi)有對(duì)應(yīng)的指令,這給我們對(duì)單片機(jī)的高效操作帶來(lái)困難,嵌入?yún)R編可是我們的程序執(zhí)行更有效率。
3、對(duì)一些特定地址進(jìn)行操作:在 C中我們要對(duì)特定地址進(jìn)行讀寫,一般用以下兩種方式:用_AT_指令定義變量; 定義指向外部端口或數(shù)據(jù)地址的指針; 在匯編中只需要使用 MOVX A,@DPTR或MOVX @DPTR,A 就可以了,
這樣可以增強(qiáng)程序的可讀性。
4、其他的需要匯編的應(yīng)用:在這里我們不可能舉出所有可能要用匯編的例子,在你的應(yīng)用中,你可能在一個(gè)或多個(gè)應(yīng)用中感到 C語(yǔ)言的不足,而需要用到匯編指令,請(qǐng)你記住,可以在 C中嵌入?yún)R編子程序,這對(duì)你的程序非常有用。


完整的pdf格式文檔51黑下載地址(共17頁(yè)):
Keil軟件“C語(yǔ)言”與“匯編”混編-——-相關(guān)知識(shí)整理.pdf (421.94 KB, 下載次數(shù): 100)




作者: a25575703    時(shí)間: 2018-1-29 06:09
感謝樓主的分享。
作者: fengxiangyyy    時(shí)間: 2019-11-16 13:29
這個(gè)是好資料,謝謝樓主。
作者: jxchen    時(shí)間: 2019-12-8 23:12

這個(gè)是好資料,謝謝樓主。
作者: yangyangR    時(shí)間: 2021-7-20 11:19
感謝樓主分享!受益了!
作者: pq1972    時(shí)間: 2021-7-27 12:52
好資料,謝謝LZ分享。收藏慢慢學(xué)習(xí)




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1