計算機語言


當人們使用計算機來完成某些任務時,就必須告訴它怎樣具體地處理這些任務。同計算機進行這種交流的工具是什么呢?就是計算機語言。人們利用計算機語言告訴計算機某個問題應如何處理,先做什么,后做什么,即人們用計算機語言安排好處理步驟,每一步都是用計算機語言描述的。這種用計算機語言描述的處理步驟,稱為程序。計算機執行程序時,就按照處理步驟完成人所規定的任務。

計算機語言可分為 3 類:機器語言、匯編語言和通用語言。前兩類是面向機器的,一般稱為低級語言;后一類是面向程序設計人員的,一般稱為高級語言。

一、機器語言

雖然可以使用各種語言編寫程序,但計算機卻只能識別在設計機器時事先規定好的機器指令。機器指令即指揮計算機完成某一基本操作的命令。它們均由 0 和 1 二進制代碼串組成。機器指令的一般格式為:

機器指令的一般格式

操作碼字段指出該指令執行何種操作,地址碼字段指出被操作的數據(操作數)和操作結果的存放位置。

例如,將地址為 0000 0100B 的字節存儲單元中的內容加 3,若用 Intel 8086/8088 機器指令來完成該操作,則相應的機器指令為:

10000011
00000110
00000100
00000011

這條指令共 4 個字節,其中前 2 個字節的二進制代碼是操作碼,表示要進行“加”操作,並指明了以何種方式取得兩個加數;第三個字節二進制代碼指出了第一個加數存放在偏移地址為 00000100B 的內存單元,最后一個字節二進制代碼指出第二個加數 3。

機器指令也常被稱為硬指令,它是面向機器的,即不同的計算機規定了自己所特有的、一定數量的基本指令(指令系統)。用機器指令進行描述的語言叫作機器語言,用機器語言編寫的程序稱為機器語言程序或目標程序。目標程序中的二進制機器指令代碼稱為目標代碼。

使用任何語言編寫的程序最終都要轉換成機器語言程序,才能被計算機識別、理解並執行。

二、匯編語言

由於機器指令是用二進制表示的,編寫、閱讀和調試程序都相當困難。於是,人們想出了用助記符表示機器指令的操作碼,用變量代替操作數的存放地址,還可以在指令前冠以標號,用來代表該指令的存放地址等。這種用符號書寫的、與機器指令一一對應的、並遵循一定語法規則的符號語言就是匯編語言。用匯編語言編寫的程序稱為匯編語言源程序。例如前面的例子,用匯編語言來書寫就成為:

MOV  SI,0004H
ADD  BYTE PTR [SI],3

由於匯編語言是為了方便用戶而設計的一種符號語言,因此,用它編寫出的源程序並不能直接被計算機識別,必須將它翻譯成機器語言程序即目標程序才能被計算機執行。這個翻譯工作是由系統軟件提供的一個語言加工程序完成的。這個把匯編語言源程序翻譯成目標程序的程序稱為匯編程序,匯編程序進行翻譯的過程叫匯編。這里,匯編程序相當於一個翻譯器,它加工的對象是匯編語言源程序,加工的結果是目標程序,如圖 2 所示。

匯編語言源程序翻譯成目標程序

圖 2 匯編語言源程序翻譯成目標程序

為了能讓匯編程序正確完成翻譯工作,必須告訴它源程序從什么位置開始存放,匯編到什么位置結束,數據應放在什么位置,數據類型是什么,等等。這就要求源程序中有一套告訴匯編程序如何進行匯編的命令,這種匯編命令稱為偽指令。由此可見,指令助記符、語句標號、數據變量、偽指令及它們的使用規則構成了整個匯編語言的內容。

與機器語言相比,匯編語言易於理解和記憶,所編寫的源程序容易閱讀和調試。匯編語言的魅力還在於程序占用內存少,執行速度快,並且可直接對硬件編程,能充分發揮計算機的硬件功能。

三、高級語言

高級語言是用接近自然語言的符號對計算機操作步驟進行描述的計算機語言,如 Pascal、C 語言等。目前計算機高級語言有數百種之多。高級語言的特點是程序容易編址和調試,科學計算和事件處理能力強,且與機器硬件無關,通用性強;但生成目標代碼長度長,占用內存多,執行速度較慢。

上述的高級語言是面向過程的程序設計語言。隨着計算機軟件技術的發展,出現了面向對象的可視化程序設計語言,如 Java、C++、Delphi 等,這種語言是將數據(屬性)及數據的處理過程(方法)封裝起來,用對象加以描述。程序設計者通過實現對象,完成軟件的開發,但數據處理過程的具體實現采用的仍是面向過程的方法。

原文:計算機語言

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM