單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt

單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt

ID:58818854

大?。?01.00 KB

頁數(shù):48頁

時間:2020-10-01

單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt_第1頁
單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt_第2頁
單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt_第3頁
單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt_第4頁
單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt_第5頁
資源描述:

《單片機原理與應(yīng)用-基于匯編、C51及混合編程第6章C51與匯編語言混合編程ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、本書例題的介紹與實際應(yīng)用相結(jié)合,原理圖中給出了各元器件的實際應(yīng)用參數(shù)。1第6章C51與匯編語言混合編程6.1、C51與匯編語言混合編程概述6.2、C51和A51程序接口基礎(chǔ)6.3、混合編程的實現(xiàn)26.1C51與匯編語言混合編程概述在一個應(yīng)用程序中,根據(jù)每個任務(wù)的具體特點和要求,用不同的編程語言編寫源程序,最后通過編譯/連接器生成一個可執(zhí)行的完整程序,這種編程方式稱為混合編程。匯編語言特點:優(yōu)點:執(zhí)行速度快、效率高、實時性強、與硬件結(jié)合緊密。缺點:編程難度大、可讀性差,不便于移植、開發(fā)時間長。C語言特點:優(yōu)點:編程容易、可移植性強、支持多種數(shù)據(jù)類型,能直

2、接對硬件進行操作,效率高。缺點:實時處理弱于匯編語言,無法準(zhǔn)確定時?;旌暇幊烫攸c:效率高、速度快、易于編程、可讀性、可移植性好,使用范圍廣3單片機程序的編譯過程:無論是C語言還是匯編語言,源程序都要被轉(zhuǎn)換成目標(biāo)代碼(機器語言),單片機才能識別。在Keil中程序的編譯過程如圖6-1所示。圖6-1程序編譯連接過程在單片機混合編程中,C模塊與匯編模塊的接口簡單,分別用C51和A51對源文件進行編譯,然后經(jīng)連接定位器L51產(chǎn)生可下載到程序存儲器的十六進制可執(zhí)行文件。46.2C51和A51程序接口基礎(chǔ)C語言與匯編語言程序的連接,在技術(shù)上有兩個問題:一個是C語言程

3、序與匯編語言程序如何相互調(diào)用;另一個是C語言程序和匯編語言程序如何實現(xiàn)相互之間的數(shù)據(jù)傳遞?;旌暇幊讨?,必須約定兩個規(guī)則,即命名規(guī)則和參數(shù)傳遞規(guī)則。6.2.1C51函數(shù)名的轉(zhuǎn)換及其命名規(guī)則C51程序模塊編譯成目標(biāo)文件后,其中的函數(shù)名要依據(jù)其定義的性質(zhì)轉(zhuǎn)換為相應(yīng)不同的函數(shù)名。因此,在C和匯編程序的相互調(diào)用中,要求匯編程序必須服從這種函數(shù)名的轉(zhuǎn)換規(guī)則,否則將無法調(diào)用到所需的函數(shù)甚至出現(xiàn)錯誤。C51中函數(shù)名的轉(zhuǎn)換規(guī)則如表6-1所示,其匯編符號名全部轉(zhuǎn)換為大寫。5表6-1C51中函數(shù)名的轉(zhuǎn)換規(guī)則C51函數(shù)聲明匯編符號名說明voidfunc1(void)FUNC1

4、無參數(shù)傳遞或不含寄存器的函數(shù),名稱不作改變直接轉(zhuǎn)入目標(biāo)文件中。voidfunc2(char)_FUNC2通過寄存器傳遞參數(shù),函數(shù)名加前綴“_”voidfunc3(void)reentrant_?FUNC3重入函數(shù),通過堆棧傳遞參數(shù),函數(shù)名加前綴“_?”66.2.2C51函數(shù)及其相關(guān)段的命名規(guī)則一個C51源程序模塊被編譯后,其中的每個函數(shù)以“?PR?函數(shù)名?模塊名”為命名規(guī)則被分配到一個獨立的CODE段。例如,如果模塊“FUNC51”內(nèi)包含一個名為“func”的函數(shù),則其CODE段的名字是“?PR?FUNC?FUNC51”。如果一個函數(shù)包含有data或b

5、it類型的局部變量,編譯器將按“?函數(shù)名?BYTE”或“?函數(shù)名?BIT”命名規(guī)則建立一個data或bit段,它們代表所要傳遞參數(shù)的起始位置,其偏移量為0。這些段是公開的,因而它們的地址可以被其它模塊訪問。這些段被編譯器賦予“OVERLAYABLE”標(biāo)志,可被L51連接/定位器作覆蓋分析。依據(jù)所使用的存儲器模式,這些段按表6-2所列規(guī)則命名,在相互調(diào)用時,匯編語言必須服從C51有關(guān)段名的命名規(guī)則。7表6-2各種存儲模式下C51函數(shù)段名的命名規(guī)則數(shù)據(jù)段類型段名程序代碼CODE?PR?函數(shù)名?模塊名(所有存儲器模式)局部變量DATA?DT?函數(shù)名?模塊名(

6、SMALL模式)PDATA?PD?函數(shù)名?模塊名(COMPACT模式)XDATA?XD?函數(shù)名?模塊名(LARGE模式)局部bit變量BIT?BI?函數(shù)名?模塊名(所有存儲器模式)86.2.3C51函數(shù)的參數(shù)傳遞規(guī)則C51中調(diào)用匯編程序時參數(shù)傳遞有兩種方式,一種是通過寄存器傳遞,一種是通過固定存儲區(qū)傳遞。1.通過寄存器傳遞參數(shù)KeilC51規(guī)定,調(diào)用函數(shù)時,通過寄存器最多可傳遞3個參數(shù),余下的通過固定存儲區(qū)傳遞。如果在源程序中采用了編譯控制命令“#pragmaNOREGPARMS”,則所有參數(shù)傳遞都發(fā)生在固定的存儲區(qū)域,所使用的地址空間依賴于所選擇的存

7、儲模式。用寄存器傳遞參數(shù)的函數(shù)在編譯時被C51編譯器在函數(shù)名前加了一個“_”的前綴,用固定存儲區(qū)傳遞參數(shù)的函數(shù)轉(zhuǎn)換成的函數(shù)名沒有下劃線,如表6-1所示。不同的參數(shù)用到的寄存器不一樣,不同的數(shù)據(jù)類型用到的寄存器也不同。表6-3是利用寄存器傳遞參數(shù)的規(guī)則。9表6-3C51利用寄存器傳遞參數(shù)規(guī)則參數(shù)類型charintlong/float通用指針第1個參數(shù)R7R6、R7R4-R7R1-R3第2個參數(shù)R5R4、R5無R1-R3第3個參數(shù)R3R2、R3無R1-R3其中,int型和long型數(shù)據(jù)傳遞時,低地址寄存器中放數(shù)據(jù)的高位字節(jié),高地址寄存器中放數(shù)據(jù)的低位字節(jié);

8、float型數(shù)據(jù)滿足IEEE格式,R4中存放階碼和符號位,尾數(shù)按從高位到低位的順序依次存放在寄

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。