單片機中data,idata,xdata,startup.a51的作用

發(fā)布時間:2025-01-09
data:
固定指前面0x00-0x7f的128個ram,可以用acc直接讀寫的,速度最快,生成的代碼也最小。
idata:
固定指前面0x00-0xff的256個ram,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似c中的指針方式 訪問的。匯編中的語句為:mox acc,@rx.(不重要的補充:c中idata做指針式的訪問效果很好)
xdata:
外 部擴展ram,一般指外部0x0000-0xffff空間,用dptr訪問。 pdata:外部擴展ram的低256個字節(jié),地址出現(xiàn)在a0-a7的上時讀寫,用movx acc,@rx讀寫。這個比較特殊,而且c51好象有對此bug, 建議少用。但也有他的優(yōu)點,具體用法屬于中級問題,這里不提。
startup.a51的作用
和 匯編一樣,在c中定義的那些變量和數(shù)組的初始化就在startup.a51中進行,如果你在定義全局變量時帶有數(shù)值,如unsigned char data xxx=“100”,那startup.a51中就會有相關的賦值。如果沒有=100,startup.a51就會把他清0。(startup.a51 ==變量的初始化)。 這些初始化完畢后,還會設置sp指針。對非變量區(qū)域,如堆棧區(qū),將不會有賦值或清零動作。
有人喜歡改 startup.a51,為了滿足自己一些想當然的愛好,這是不必要的,有可能錯誤的。比如掉電保護的時候想保存一些變量, 但改startup.a51來實現(xiàn)是很笨的方法,實際只要利用非變量區(qū)域的特性,定義一個指針變量指向堆棧低部:0xff處就可實現(xiàn)。為什么還要去改? 可以這么說:任何時候都可以不需要改startup.a51,如果你明白它的特性。
上一個:過年老板不發(fā)工資怎么辦
下一個:編碼器在工業(yè)自動化中的作用與發(fā)展

新手賣家可以找亞馬遜代運營?
湖南航空物流有限公司 湖南長沙航空物流
美國海運哪家好
國際空運大件貨物(國際空運貨物的計費重量)
物流管理系統(tǒng) 物流管理系統(tǒng)app
殼式變壓器與芯式變壓器的區(qū)別
真空泵使用中需要注意哪些問題?
有機棉
非洲豬瘟來襲企業(yè)如何應對,聚創(chuàng)提供解決方案
彩譜CS-422分光測色儀應用設計
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos