優化級別說明(僅供參考)
則其中的
code
optimization
欄就是用來設定
c51的優化級別。
共有個優化
級別(書上這麼寫的)
,高優化級別中包含了前面所有的優化級別。現將各個級
別說明如下:
級優化:
常數摺疊:只要有可能,編譯器就執行將表示式化為常數數字的計算,其中
包括執行位址的計算。
簡單訪問優化:對
系統的內部資料和位位址進行訪問優化。
跳轉優化:
編譯器總是將跳轉延至最終目標上,
因此跳轉到跳轉之間的命令
被刪除。
級優化:
死碼消除:無用的**段被消除。
跳轉否決:根據乙個測試回溯,條件跳轉被仔細檢查,以決定是否能夠簡化
或刪除。
級優化:
資料覆蓋:
適於靜態覆蓋的資料和位段被鑑別並標記出來。
連線定位器
bl51
通過對全域性資料流的分析,選擇可靜態覆蓋的段。
級優化:
窺孔優化:將冗餘的
mov命令去掉,包括不必要的從儲存器裝入物件及
裝入常數的操作。
另外如果能節省儲存空間或者程式執行時間,
複雜操作將由簡
單操作所代替。
級優化:
暫存器變數:
使自動變數和函式引數盡可能位於工作暫存器中,
只要有可能,
將不為這些變數保留資料儲存器空間。
、擴充套件訪問優化:來自
idata
xdata
pdata
和code
區域的變數直接包
含在操作之中,因此大多數時候沒有必要將其裝入中間暫存器。
、區域性公共子式消除:如果表示式中有乙個重複執行的計算,第一次計算的結
果被儲存,
只要有可能,
將被用作後續的計算,
因此可從**中消除繁雜的計算。
C51儲存的優化
我們知道51微控制器只有128byte的ram,有的增強型有xram,此時程式設計時就要注意,否則就有可能超出空間 1 對於各模組的全域性變數 靜態變數 全域性列舉型常量,靜態列舉型常量 個別操作儲存 如外部spi flash 的區域性變數都要修飾成xdata型別,從而節省空間。2 對於bit型變數...
c51為啥要巨集定義時鐘 c51時鐘
程式效果 時鐘,包括時間可調,定時到了鬧鐘響,用蜂鳴器,本程式已經除錯通過 喇叭接在p2.0上.埠均可自行更改.include 標頭檔案 include define uchar unsigned char 巨集定義 define uint unsigned int sbit key1 p3 5 位...
51微控制器與C51
微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...