keilc51中如何看堆棧的分配情況
但,今天發(fā)生的事情證明我錯了。
本文引用地址:http://m.butianyuan.cn/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。當從外部ROM中取指令時,采用選通信號PSEN,而從外部RAM中讀寫數(shù)據(jù)時
則采用讀RD和寫WR信號或來選通,因此不會因地址重迭而發(fā)生混亂。
評論