CPU指令、機器碼、程序和匯編語言


一、指令

指令就是指揮機器工作的指示和命令。控制器靠指令指揮機器工作,人們用指令表達自己的意圖,並交給控制器執行。一台計算機所能執行的各種不同指令的全體,叫做計算機的指令系統或指令集,每一台計算機均有自己的特定的指令系統,其指令內容和格式有所不同。一條指令具有實際的意義,CPU會完成一次操作,達到一定目的。人類能夠理解其意義。

二、機器碼

 機器碼說白了,就是用一種機器也就是CPU認識和理解的有一定結構的語言來表達指令,某條指令用這種語言表達成一條語句,就是這條指令的機器碼。我們知道,現在的CPU他只能理解二進制,那么機器碼就是某條指令在某個CPU上一組有意義的二進制代碼。為了指出數據來源、操作結果去向及所要執行的操作,指令必須包含下列信息:
  • 操作碼
    用來表示該指令要完成的操作,如+-*/等
  • 操作數或操作數地址
    用來指出操作對象的地址(內存地址或寄存器)或直接給出操作數
  • 操作結果存儲地址
  • 下條指令地址

如何區分指令和數據:我們可以通過不同的時間段來區分指令和數據,即在取指令階段(或取指微程序)取出的為指令,在執行指令階段(或相應微程序)取出的即為數據。如果通過地址來源區分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數。

三、程序

計算機程序(英語:Computer program),也稱為軟件(英語:software),簡稱程序。是指一組指示計算機或其他具有信息處理能力裝置執行動作或做出判斷的指令。也就是說,程序是為了實現某個目的或功能,按照一定邏輯人為編寫的在特定目標機上運行的指令和數據的集合。

四、匯編語言

為了編寫計算機能運行的程序,早期的程序設計均使用機器語言。程序員們將用0, 1數字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機或卡片機輸入計算機,進行運算。這樣的機器語言由純粹的0和1構成,十分復雜,不方便閱讀和修改,也容易產生錯誤。程序員們很快就發現了使用機器語言帶來的麻煩,它們難於辨別和記憶,給整個產業的發展帶來了障礙,於是匯編語言產生了。匯編語言的主體是匯編指令。匯編指令和機器碼的差別在於指令的表示方法上。匯編指令是機器指令便於記憶的書寫格式。所以匯編語言是符號語言。在匯編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,匯編語言對應着不同的機器語言指令集,通過匯編過程轉換成機器指令。普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。許多匯編程序為程序開發、匯編控制、輔助調試提供了額外的支持機制。有的匯編語言編程工具經常會提供宏,它們也被稱為宏匯編器。匯編語言不像其他大多數的程序設計語言一樣被廣泛用於程序設計。在今天的實際應用中,它通常被應用在底層,硬件操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。

五、總結

  • 形而上的指令是人類能理解的要求計算機做的操作
  • 機器碼是形而下的指令,對應目標機的具體表達形式和內容,也就是說機器碼是指令在目標機的具象。
  • 每台機器的指令,其格式和代碼所代表的含義都是硬性規定的,故稱之為面向機器的語言,也稱為機器語言。二進制,作為一種機器碼,計算機可以直接識別,不需要進行任何翻譯
  • 匯編語言可以簡單理解為機器語言的助記符,也是人類能記憶和理解的。


免責聲明!

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



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