新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430 單片機C語言和匯編語言混合編程

        MSP430 單片機C語言和匯編語言混合編程

        作者: 時間:2012-03-19 來源:網絡 收藏

        3

        明確了以上約定,就非常容易。基本做法是:
        (1)C源文件用‘extren’關鍵字導入被源文件導出的標號。
        (2)源文件用‘PUBLIC’關鍵字把標號導出給C語言源文件。
        (3)源文件用‘EXTREN’關鍵字導入被C語言源文件導出的標號。
        (4)C語言源文件把標號導出給匯編語言文件,則不需要關鍵字。
        (5)把寫好的C語言源文件和匯編語言源文件加入工程,并用各自調用函數的指令調用即可。

        4 應用實例

        4.1 C 語言函數和匯編語言函數相互調用

        在這個示例中C語言函數main()調用匯編語言函數get_rand()以得到一個隨機數;匯編語言函數get_rand()首先調用C語言的標準庫函數rand()得到一個整型隨機值,然后用調用C語言函數mult()的方法把這個隨機值乘以main()函數傳遞給自己的實參,并把乘積值返回給 main()函數。

        4.1.1 C語言源文件
        /**************************************************************/
        /* 文件名:c_source.c 2003-01-05 */
        /* C語言和匯編語言,C源程序 */
        /* 這段源程序調用匯編語言函數get_rand() */
        /* 注意工程必需包含匯編語言源文件 asm_source.s43 */
        /**************************************************************/
        #include x14x.h> /* 頭文件 */
        extern unsigned long get_rand(unsigned char seed); /* 匯編語言函數原型聲明 */
        /****************************************************************/
        /* 主函數 */
        /****************************************************************/
        void main( void )
        {
        unsigned char seed; /* 局部變量定義*/
        unsigned long value;
        // === 系統初始化 ==========================================
        IFG1 = 0; /* 清除中斷標志1 */
        WDTCTL = WDTPW+WDTHOLD; /* 停止看門狗 */
        P1DIR = 0xff;
        // === 系統初始化結束========================================

        seed = 0x55;
        value = get_rand(seed); /* 調用匯編語言函數get_rand()得到一個隨機數 */
        while(1); /*程序結束*/
        }
        // === 主程序結束 ==================================================
        /******************************************************************/
        /* 乘法子程序,供匯編語言函數調用 */
        /******************************************************************/
        unsigned long mult(int x , int y)
        {
        return (x *y); /*x乘y */
        }
        // === 乘法子程序結束 ================================================

        c語言相關文章:c語言教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 陈巴尔虎旗| 云梦县| 万安县| 巴彦淖尔市| 鹤壁市| 卢龙县| 秦安县| 厦门市| 共和县| 阳城县| 洞头县| 荆门市| 城步| 图们市| 建湖县| 金寨县| 崇阳县| 禹城市| 临清市| 蒙阴县| 砀山县| 定兴县| 张掖市| 阳朔县| 龙游县| 兴海县| 巴中市| 宿松县| 固原市| 从化市| 壶关县| 威信县| 龙口市| 雅江县| 阿尔山市| 开封市| 彭山县| 榆中县| 成安县| 柳林县| 修水县|