- 嵌入式硬件技術基礎
- 王曉薇 周傳生 李冶主編
- 1748字
- 2018-12-27 15:19:59
1.2 計算機軟件
1.2.1 軟件的組成與分類
計算機中的程序、數據和文檔稱為計算機軟件。計算機軟件一般分為系統軟件和應用軟件兩類。如圖1-2所示。

圖1-2 軟件組成
系統軟件是方便用戶使用計算機,發揮計算機效率、功能的基礎軟件。它負責計算機系統的調度管理,提供程序的運行環境和開發環境,并且向用戶提供各種服務。
應用軟件是用各種程序設計語言編寫出來的具有特定功能的程序。
1.2.2 計算機語言
計算機的功能是強大的,但它又是“沒有智慧的”,說它強大,是因為計算機能夠幫助人們完成人類完不成的事務,說它是“沒有智慧的”,則是因為計算機是沒有“主觀能動性”的,計算機所進行的各種行為都是人根據具體問題,用計算機能夠“明白”的語言,把按照一定的方法組織和處理表示不同信息的不同數據的完整描述輸入計算機,而計算機任何時刻都能夠“忠誠”地執行這樣的描述,這個過程實際上就是編程。這里計算機能夠“明白”的語言就是計算機語言。計算機語言包括機器語言、匯編語言和高級語言。
1. 機器語言
機器語言是計算機硬件能夠直接識別和執行的以二進制代碼表示的機器指令。在早期的計算機中,人們用機器語言來編寫程序。用機器語言編寫程序時,必須知道所使用計算機的指令格式,編排好存放每條指令的地址,以區分執行程序的先后次序及各指令之間的跳轉關系。所以機器語言是面向機器的,每一種機器語言編寫的程序只適用于某種特定類型的計算機。由于計算機能直接識別和執行機器語言程序,故機器語言程序又稱為目標程序,顯然機器語言程序執行起來是最快的。
用機器語言編寫程序既煩瑣,又容易出錯,還要求程序編寫者深入理解計算機硬件結構。因此,在計算機發展過程中,逐步出現了匯編語言和各種高級的程序設計語言,以幫助人們更有效、更方便地編寫程序。
2. 匯編語言
匯編語言是一種與計算機機器語言相當接近的符號語言。它采用助記符來表示機器指令的操作碼。采用符號地址指示程序存放在存儲器中的位置及跳轉關系,并增加一些控制程序執行和便于表示數據及其存放的命令,以方便人們編寫程序。匯編語言與機器語言一樣,也是一種面向機器的語言。
用匯編語言編寫的程序稱為匯編語言源程序。計算機不能直接識別和執行匯編語言源程序,需要通過稱為匯編程序的一種語言處理程序加以處理。得到機器指令形式的目標程序,計算機才能識別和執行。將匯編語言源程序處理為機器語言的目標程序的過程,稱為“匯編”;反之,將機器語言的目標程序轉換為匯編語言源程序的過程,稱為“反匯編”。也可將一種計算機的匯編語言源程序匯編成另一種計算機的機器語言的目標程序,這個過程稱為“交叉匯編”。
匯編語言與硬件關系密切,用它編寫的程序緊湊,占主存小,速度快,適合于編寫直接訪問系統硬件的系統程序或設備控制軟件。
3. 高級語言
高級語言克服了機器語言和匯編語言依賴于具體計算機的缺陷,使計算機語言成為描述各種問題求解過程的算法語言。并從過程化語言發展為現代廣泛應用的面向對象的語言。用某種高級語言編寫的程序稱為高級語言源程序,如C++語言源程序、PASCAL語言源程序等。
計算機不能直接執行高級語言源程序,源程序在輸入計算機后,通過“翻譯程序”翻譯成機器語言形式,計算機才能識別和執行。這種“翻譯”通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟件存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機后,編譯程序便把源程序翻譯成用機器語言表示的與之等價的目標程序,然后計算機再執行該目標程序,以完成源程序要處理的運算,并取得結果。解釋方式是指源程序進入計算機后,由一個叫解釋程序的處理程序邊掃描邊解釋,逐句輸入逐句翻譯,計算機再逐句執行,并不產生目標程序。如PASCAL,FORTRAN,COBOL等高級語言按編譯方式執行;BASIC語言則以解釋方式執行為主。
高級語言不涉及機器的硬件結構,表達方式比較接近自然語言,描述問題的能力強,通用性強,編寫程序容易,適合于編寫與硬件沒有直接關系的應用軟件。
在現代程序設計中,采用在高級語言中提供與匯編語言之間的調用接口的方法,很好地利用了高級語言和匯編語言各自的優點,摒棄了兩者的不足。用匯編語言編寫的程序作為高級語言的一個外部過程或函數,匯編源程序和高級語言源程序分別通過匯編、編譯成目標文件后,利用連接程序把它們連接成可執行文件即可執行。
- Mastering VMware vSphere 6.5
- WOW!Illustrator CS6完全自學寶典
- Apache Hive Essentials
- Associations and Correlations
- WordPress Theme Development Beginner's Guide(Third Edition)
- Google SketchUp for Game Design:Beginner's Guide
- Spatial Analytics with ArcGIS
- Mastering Ceph
- 工業機器人實操進階手冊
- 網絡脆弱性掃描產品原理及應用
- 企業級Web開發實戰
- 超好玩的Python少兒編程
- 輸送技術、設備與工業應用
- 案例解說單片機C語言開發
- 數據庫技術:Access 2003計算機網絡技術