<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 能讓匯編轉到C51的初學(xué)者有更清晰的認識的一篇文章

能讓匯編轉到C51的初學(xué)者有更清晰的認識的一篇文章

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



在單一模組內可以使用下面的語(yǔ)法宣告

[memory_space]typevariable_name_at_location

範例
pdatacharmy_pdata_at_0x80;

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

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

#definevariable_name*((data_type*)location)

範例
#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)所執行的第一個(gè)程式模組並不是使用者的主程式
main(),而是一個(gè)隱藏在KEIL-標準程式庫中稱(chēng)為startup.a51的程式模組。
startup.a51的主要工作是把包含idata、xdata、pdata在內的記憶體區塊清除為0,並
且初始化遞迴指標。接著(zhù)startup.a51被執行的仍然是一個(gè)隱藏在KEIL-標準程式庫
中稱(chēng)為init.a51的程式模組。而init.a51的主要工作則是初始化具有非零初始值設定的
變數。

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

程式範例

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

庫(RegisterBank)切換的應用

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

上一頁(yè) 1 2 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>