<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è) > 嵌入式系統 > 設計應用 > 單片機基礎:keil中data,idata,xdata,pdata,code區別

單片機基礎:keil中data,idata,xdata,pdata,code區別

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

很多初學(xué)者甚至有些用老工程師對,,,,這些東西一直都搞不明白是怎么回事。最近看到一篇關(guān)于中data,,,,的問(wèn)題的文章,轉過(guò)來(lái)跟大家分享一下

本文引用地址:http://dyxdggzs.com/article/170590.htm

從數據存儲類(lèi)型來(lái)說(shuō),8051系列有片內、片外程序存儲器,片內、片外數據存儲器,片內程序存儲器還分直接尋址區和間接尋址類(lèi)型,分別對應、data、、以及根據51系列特點(diǎn)而設定的類(lèi)型,使用不同的存儲器,將使程序執行效率不同,在編寫(xiě)C51程序時(shí),最好指定變量的存儲類(lèi)型,這樣將有利于提高程序執行效率(此問(wèn)題將在后面專(zhuān)門(mén)講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應不同的實(shí)際硬件系統,也將有不同的編譯結果。

在51系列中data,idata,xdata,pdata的:

data:固定指前面0x00-0x7f的128個(gè)RAM,可以用acc直接讀寫(xiě)的,速度最快,生成的代碼也最小。

idata:固定指前面0x00-0xff的256個(gè)RAM,其中前128和data的128完全相同,只是因為訪(fǎng)問(wèn)的方式不同。idata是用類(lèi)似C中的指針?lè )绞皆L(fǎng)問(wèn)的。匯編中的語(yǔ)句為:mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪(fǎng)問(wèn)效果很好)

xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪(fǎng)問(wèn)。

pdata:外部擴展RAM的低256個(gè)字節,地址出現在A(yíng)0-A7的上時(shí)讀寫(xiě),用movx ACC,@Rx讀寫(xiě)。這個(gè)比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優(yōu)點(diǎn),具體用法屬于中級問(wèn)題,這里不提。

C語(yǔ)言unsigned char code table[] code 是什么作用?

code的作用是告訴,我定義的數據要放在ROM(程序存儲區)里面,寫(xiě)入后就不能再更改,其實(shí)是相當與匯編里面的尋址MOVX(好像是),因為C語(yǔ)言中沒(méi)辦法詳細描述存入的是ROM還是RAM(寄存器),所以在軟件中添加了這一個(gè)語(yǔ)句起到代替匯編指令的作用,對應的還有data是存入RAM的意思。

程序可以簡(jiǎn)單的分為code(程序)區,和data (數據)區,code區在運行的時(shí)候是不可以更改的,data區放全局變量和臨時(shí)變量,是要不斷的改變的,cpu從code區讀取指令,對data區的數據進(jìn)行運算處理,因此code區存儲在什么介質(zhì)上并不重要,象以前的計算機程序存儲在卡片上,code區也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是運行速度要慢很多,主要讀flash比讀ram要費時(shí)間),因此一般的做法是要將程序放到flash里面,然后load到 ram里面運行的;DATA區就沒(méi)有什么選擇了,肯定要放在RAM里面,放到rom里面改動(dòng)不了。



評論


相關(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>