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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > keilc51中如何看堆棧的分配情況

        keilc51中如何看堆棧的分配情況

        作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
        Keil C是非常優(yōu)秀的C51編譯器,可能是最好的C51編譯器,提供各種優(yōu)化模式,對變量的優(yōu)化和地址安排做得非常好。這是用C語言寫代碼的好處之一,如果用匯編寫,得費一大番功夫給各個變量安排內(nèi)存物理地址,還得時刻記住哪些地址的內(nèi)存單元是已經(jīng)分配了,新增加的變量就不能占用那些已經(jīng)分配了的單元,以免產(chǎn)生內(nèi)存交疊沖突和溢出。我一直非常信賴Keil C51的編譯結(jié)果,在我的印象里,它對內(nèi)存的分配是完美的,只要代碼用它編譯時沒有報告任何warning和error,代碼運行時不可能內(nèi)存沖突或溢出的現(xiàn)象。

        但,今天發(fā)生的事情證明我錯了。

        本文引用地址:http://www.biyoush.com/article/201611/323457.htm

        手頭上有個產(chǎn)品的代碼,代碼量很大。程序跑起來的效果不大好,因此打算把代碼優(yōu)化一下。代碼量越大,通??蓛?yōu)化的地方也越多。對8051來說,訪問芯片內(nèi)部的data區(qū)(0~7FH)內(nèi)存速度是最快的,直接訪問,一條指令就能讀寫,而idata區(qū)(80H~FFH)雖然還是內(nèi)存區(qū),但由于地址分配上跟特殊寄存器SFR重合,只能間接地址訪問,兩條指令才能讀寫,速度稍慢點,而外存xdata區(qū)(0~7FFFH)必須使用DPTR指針才能訪問,速度是最慢的。很明顯,優(yōu)化的原則就是盡量把頻繁讀寫的變量優(yōu)先安排在data區(qū),然后是idata區(qū),最后才是xdata區(qū)。




        8051在物理上有4個存儲器空間

        片內(nèi)ROM和片外ROM。片內(nèi)RAM和片外RAM。

        片外程序存儲器ROM地址空間為64kB,片外數(shù)據(jù)存儲器RAM也有64kB的尋址區(qū),在地址上是與ROM重迭的。

        8051單片機通過不同信號來選通ROM或RAM。當(dāng)從外部ROM中取指令時,采用選通信號PSEN,而從外部RAM中讀寫數(shù)據(jù)時

        則采用讀RD和寫WR信號或來選通,因此不會因地址重迭而發(fā)生混亂。


        上一頁 1 2 下一頁

        關(guān)鍵詞: keilc51堆棧分配情

        評論


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

        關(guān)閉