新聞中心

        c51與匯編語言的接口

        作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
        1.c51匯編語言的模塊內(nèi)接口

        本文引用地址:http://www.104case.com/article/201611/315733.htm

        有時(shí)候,需要使用匯編語言來編寫程序,比如對(duì)硬件進(jìn)行操作或在一些對(duì)時(shí)鐘要求很嚴(yán)格的場(chǎng)合,但又不希望用匯編語言來編寫全部程序或調(diào)用匯編語言編寫的函數(shù),那么可以通

        過預(yù)編譯指令“asm,在C代碼中插入?yún)R編代碼。

        方法是用#pragma語句。具體結(jié)構(gòu)是:

        #pragma asm

        匯編行

        #pragma endasm

        這種方法是通過#pragma asm和#pragma endasm告訴c51編譯器,中間行不用編譯為匯編行。例如:

        2.c51與匯編語言的模塊間接口

        C51模塊與匯編語言模塊的接口較簡(jiǎn)單,分別用C5l與A51對(duì)源文件進(jìn)行編譯,然后用L51連接obj文件即可。模塊接口間的關(guān)鍵問題在于C函數(shù)與匯編函數(shù)之間的參數(shù)傳遞。C51中有兩種參數(shù)傳遞方法。

        ①通過寄存器傳遞函數(shù)參數(shù)

        匯編函數(shù)要得到參數(shù)值時(shí)就訪問這些寄存器,如果這些值正被使用并保存在其他地方或己經(jīng)不再需要了,那么這些寄存器可被用作其他用途。應(yīng)該注意到通過內(nèi)部RAM傳遞參數(shù)的函數(shù)將使用規(guī)定的寄存器,匯編函數(shù)將使用這些寄存器接收參數(shù)。對(duì)于要傳遞多于3個(gè)參數(shù)的函數(shù),剩余的參數(shù)將在默認(rèn)的存儲(chǔ)器段中傳遞。

        ②通過固定存儲(chǔ)區(qū)傳遞(Fixed Memory)

        (3)SRC控制

        該控制指令將C文件編譯生成匯編文件(.SRC),該匯編語言文件在改名后,生成匯編.ASM文件,再用A5l進(jìn)行編譯。



        關(guān)鍵詞: c51匯編語言接

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 汽车| 马边| 昭苏县| 阿拉善左旗| 仙桃市| 肇州县| 巩留县| 根河市| 石狮市| 榕江县| 西乌珠穆沁旗| 玛多县| 宁城县| 依兰县| 汨罗市| 樟树市| 龙门县| 双桥区| 永城市| 朝阳市| 石嘴山市| 祥云县| 上饶县| 连南| 阆中市| 广昌县| 综艺| 廉江市| 竹北市| 汽车| 漳平市| 西畴县| 阜新市| 筠连县| 阿瓦提县| 牙克石市| 上蔡县| 深圳市| 田林县| 丰顺县| 台前县|