源程式
源程式,是指未經編譯的,按照一定的程式設計語言規範書寫的,人類可讀的文本檔案。通常由高級語言編寫。源程式可以是以書籍或者磁帶或者其他載體的形式出現,但最為常用的格式是文本檔案,這種典型格式的目的是為了編譯出計算機可執行的程式。將人類可讀的程式代碼文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,由各種編譯器來完成。一般用高級語言編寫的程式稱為“源程式”。
作用:
1.生成目標程式;
2.對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程式設計師都忽視軟體說明的編寫,因為這部分雖然不會在生成的程式中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程式的良好習慣,一些公司也硬性規定必須書寫。
源程式編輯
源程式編輯就是在微型計算機上藉助編輯軟體,編寫彙編語言源程式,可供使用的編輯軟體很多,如行編輯或螢幕編輯軟體。
編輯結束後,存檔退出。接下來就是使用交叉彙編軟體,對編輯的源程式進行彙編。如果源程式無誤,機器就會顯示“OK”,如果有錯誤,機器就會顯示有幾個錯誤以及錯誤在哪條語句。這時就要重新編輯,然後重新彙編,直至彙編通過。
彙編源程式的編輯
大多數的彙編程式都將源程式的編輯、彙編、與單片機仿真器的通訊、程式調試等集成在一個軟體包內,使用時非常方便。
源程式經過機器彙編後,可自動形成兩個檔案:一是列表檔案(.LST),另一個是目標檔案(.OBJ)。
生成的目標檔案程式經PC機的串列口傳到開發機上,接下來就是仿真調試,經調試無誤後,再經編程器將調試好的目標程式固化到程式存儲器ROM中。
編輯源程式
設要編輯例6.2的源程式,鍵人以下命令:
C:\ASM>EDIT HEXToASC.ASM
編輯檔案名稱為HEXTOASC.ASM的源檔案。檔案的擴展名必須取為ASM。上述例子中,
C:\ASM>表示源程式所在的目錄。
彙編源程式
鍵入以下命令:
C:\ASM>TASM HEXTOASC
螢幕顯示下列信息
Turbo Assembler Version 3.1 Copyright(e)1988,1992 Borland International
Assembling file:HEXTOASC.ASM
*Warning*HEXTOASC.ASM(10)Reserved word used as symbol:STACK
Error messages: None
Warning messages:1
Passes: 1
Remaining memory:433k
表示無致命性錯誤,第10行僅有一個警告性錯誤,說明使用了系統保留字STACK,對該警告性錯誤可以不予理睬。但如果有錯誤信息,則需要改正錯誤,直到彙編無錯以後,才會生成目標程式HEXTOASC.OBJ。
如果想生成列表檔案LST,需要在彙編時加入控制參數/L,格式如下:
C:\ASM>TASM HEXToASC/L
對變數和標號的處理
彙編程式通過ASSUME語句了解到運行時各段暫存器的設定值後,就可以對被彙編語句中的變數和標號作如下處理。
(1)檢查指令中所引用的變數和標號是否合理,即它們的段屬性是否和某個段暫存器的段假設值相符。
(2)檢查是否需要為所引用的變數和標號產生段超越前綴位元組,即檢查變數和標號的段屬性,看是否與硬體所規定的段暫存器假設值相符。
單片機上的套用
單片機套用系統軟體的開發和設計,幾乎都是藉助於微型計算機來完成的。
在微型計算機上可以利用各種編輯軟體編寫單片機的彙編語言源程式。源程式的編寫要依據於8051單片機彙編語言的基本規則及指令集(包括偽指令)。編寫完成的源程式應以“.ASM”的擴展名保存,以備彙編程式調用。
單片機所能識別的僅為0或1的二進制數,即機器語言。因此,由彙編語言編寫的源程式必須轉換為單片機所能執行的機器碼形式的目標程式,這個轉換的過程即為彙編。該過程若由人工完成,則需要先由指令表查出每條指令對應的機器代碼,列出一張和源程式對應的機器程式清單,然後在監控程式管理下,從鍵盤直接輸入到單片機開發機中,並進行調試。這種方法不僅出錯率高,且效率低。現在已經很少套用人工彙編。而是採用機器彙編。
機器彙編是在微型計算機上,使用交叉彙編程式將彙編語言源程式轉換為計算機能夠執行的機器碼形式的目標程式。彙編工作完全由計算機自動完成。用機器彙編,方便快捷,並能在彙編過程中發現語法錯誤。
JAVA源程式的編輯
與Delphi、VB、VC++等語言一樣,JAVA源程式也是一個純文本檔案。編輯JAVA源程式時,可以使用任何一種一種純文本編輯器,如Editplus或Windows作業系統中對自帶的記事本等。
常用的源程式編輯器介紹
Notepad++(Windows)
優於Windows記事本的一個文本編輯器,完全免費且開源,對於不同的程式語言可以實現語法高亮,代碼摺疊以及宏,起可定。
Emacs(所有平台)
Emacs文本編輯器深受高級程式設計師的喜愛,具有內置的宏功能以及強大的鍵盤命令,這對於編輯代碼來說真是一種享受,這個程式幾乎被移植到了每一個平台,並有多個發行版,其中最流行的是GNU Emacs和XEmacs,它們是跨平台、完全免費並且開源。
UltraEdit(Windows)
UltraEdit是一個49.95美元的共享軟體,也提供了友好界面的編程編輯器,支持語法高亮,代碼摺疊和宏,以及一大堆其他的功能,內置了對於HTML、PHP和JavaScript等語法的支持,和其類似的一個共享軟體EditPlus也不錯。
TextMate(Mac OS X)
價值63美元的TextMate功能強大且更具吸引力,其界面很具吸引力,在短短几年中就獲得了大量的愛好者。Windows用戶如果喜歡TextMate的話可以嘗試用一下類似TextMate的E Text Editor。
Vim(所有平台)
和Emacs一樣,Vim以鍵盤宏而廣受歡迎,做為著名的老牌編輯器Vi的後代,Vim很適合鍵盤操作的程式設計師的口味。Vim的可定製性很強,Windows用戶可以試試gVim 或gVim Portable ,Mac用戶則有MacVim。如果你只是需要Vim最有特色的部分的輕量型編輯器,可以試試Cream。
TextPad(Windows)
基於Windows的共享軟體TextPad售價32.5美元,它同樣擁有適合程式設計師的多種功能,語法高亮,代碼攔截以及宏,TextPad具有不錯的搜尋能力和易用性。