在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 能讓匯編轉(zhuǎn)到C51的初學(xué)者有更清晰的認(rèn)識(shí)的一篇文章

            能讓匯編轉(zhuǎn)到C51的初學(xué)者有更清晰的認(rèn)識(shí)的一篇文章

            作者: 時(shí)間:2012-06-29 來源:網(wǎng)絡(luò) 收藏



            在單一模組內(nèi)可以使用下面的語法宣告

            [memory_space]typevariable_name_at_location

            範(fàn)例
            pdatacharmy_pdata_at_0x80;

            如果該變數(shù)必須為多個(gè)模組所使用(GlobalVariable)則以

            抽象指標(biāo)(AbstractPointer)的方式在標(biāo)頭檔(HeaderFile)定義較為方便。

            #definevariable_name*((data_type*)location)

            範(fàn)例
            #definemy_pdata*((charpdata*)0x80)

            (注意char與pdata的順序)

            ABSACC.H提供了下列方便的巨集(Macro)定義。

            #defineCBYTE((unsignedcharvolatilecode*)0)
            #defineDBYTE((unsignedcharvolatiledata*)0)
            #definePBYTE((unsignedcharvolatilepdata*)0)
            #defineXBYTE((unsignedcharvolatilexdata*)0)
            #defineCWORD((unsignedintvolatilecode*)0)
            #defineDWORD((unsignedintvolatiledata*)0)
            #definePWORD((unsignedintvolatilepdata*)0)
            #defineXWORD((unsignedintvolatilexdata*)0)

            隱藏的初始化程序

            80在電源重置後(PowerOnReset)所執(zhí)行的第一個(gè)程式模組並不是使用者的主程式
            main(),而是一個(gè)隱藏在KEIL-標(biāo)準(zhǔn)程式庫中稱為startup.a51的程式模組。
            startup.a51的主要工作是把包含idata、xdata、pdata在內(nèi)的記憶體區(qū)塊清除為0,並
            且初始化遞迴指標(biāo)。接著startup.a51被執(zhí)行的仍然是一個(gè)隱藏在KEIL-標(biāo)準(zhǔn)程式庫
            中稱為init.a51的程式模組。而init.a51的主要工作則是初始化具有非零初始值設(shè)定的
            變數(shù)。

            在完成上述的初始化程序之後,80C51的控制權(quán)才會(huì)交給main()開始執(zhí)行使用者的程式。
            研究在C51Lib目錄下相關(guān)模組的組合語言程式碼,使用者將會(huì)對(duì)KEIL-C51的架構(gòu)有進(jìn)
            一步的了解,同時(shí)更能掌握不同的高階應(yīng)用技巧。

            程式範(fàn)例

            軟體模擬的SingleMasterI2C介面程式:C51-I2C.C

            庫(RegisterBank)切換的應(yīng)用

            庫(RegisterBank)切換的最大應(yīng)用是在中斷程序的處理。一般的軟體設(shè)計(jì)會(huì)在程
            式進(jìn)入中斷之後,利用切換庫的方式保持主程式R0~R7暫存器的內(nèi)容,不受中斷
            程序的影響而改變。

            上一頁 1 2 下一頁

            關(guān)鍵詞: 匯編 C51 暫存器

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉