我試過尋找這個答案,但找不到明確的原因。爲什麼使用數據而不是xdata顯着減少代碼空間
我想優化一些8051 C代碼以減少代碼空間。我做了如下改變..
xdata unsigned char a, b;
到
data unsigned char a, b;
...看到我的代碼大小由39Bytes(感覺像聖誕節)減少。
來源:程序大小:數據= 9.0 ...碼= 10509
到:程序大小:數據= 11.0 ...碼= 10468
問:爲什麼在代碼空間減少了這麼多對於這樣的小改變?
我知道使用數據可以通過不必使用DPTR訪問內存來保存指令。但是39Bytes比預期的要多。 – user968722
這取決於您使用該變量的程度。它重載值越大,代碼越大 –
這看起來很像彙編器,而不是C ... – RedX