Page 18 -
P. 18
2-2 8051 組合語言程式的格式
組合語言與機械碼
當電源開啟後 51 會自動從程式位址 0000H 開始執行程式,CPU 每次送出位址後會
讀取 1 Byte 的機械碼,這個機械碼就是一個指令,他會讓 CPU 去完成他所代表的動作。
而每組機械碼都是 0 與 1 的組合,要我們利用這些機器碼來作程式設計不但不方便記憶
並且容易出錯,所以我們便使用輔助記憶碼來代替機械碼,而的組合語言就是這些記憶
碼的組合。
組譯程式 (Assember)
對於單晶片而言他僅認得機械碼,對於我們使用的記憶碼並不認識,所以我們便發
展組譯程式來將我們使用的組合語言翻譯成機械碼並存入特定的檔案中讓我們方便的
燒錄到單晶片中。
8051 組合語言程式是由一列一列的敘述(statement)所組成,而程式的執行則須先經
8051 組譯器編譯後,並經燒錄器燒錄至 8051 單晶片中方可執行。而 8051 組合語言的格
式則是由 4 個欄位所構成,其格式如下:
〔Label〕 〔Mnemonic〕 〔Operand〕 〔Comment〕
標記欄 指令欄 運算元欄 註解欄
DELAY : MOV A,#8H ;ACC=8
1. 標記欄(Label)
標記的功用是用以替代繁複的記憶體位址計算,以方便程式的編寫、分析與維護。
標記的編寫必須從文書編輯軟體的第一格開始,標記可以由英文字母、阿拉伯數字、
問號及底線字元組合而成,長度最多可以達 32 個位元,最後必須以冒號來結束,其
可有可無。
2. 指令欄(Mnemonic)
指令可分為兩種,一種是 8051 單片指令,另一種則是編譯程式的虛指令,用以通知
編譯器對程式作某些特定的處理。如果一列指令開頭沒有標記時,則指令前必須保
留一個以上的空格。
3. 運算元欄(Operand)
運算元依指令決定需要與否,且其需要長度亦依指令而異。
4. 註解欄(Comment)
註解欄是以分號起頭的一段說明文字,直到該行結束。可提供程式設計師註解說明