• 機器代碼

    編輯
    本詞條由“匿名用戶” 建檔。

    機器代碼

    編輯

    計算機編程中,機器代碼是任何低級編程語言,由機器語言指令組成,用于控制計算機的中央處理器(CPU)。每條指令都會使CPU執行一項非常具體的任務,例如對CPU寄存器或內存中的一個或多個數據單元進行加載、存儲、跳轉或算術邏輯單元(ALU)操作。

    機器代碼是一種嚴格的數字語言,旨在盡可能快地運行,并且可以被視為已編譯或組裝的計算機程序的最低級別表示,或者被視為原始和依賴于硬件的編程語言。雖然可以直接用機器代碼編寫程序,但手動管理單個位和計算數字地址和常數是乏味且容易出錯的。出于這個原因,在現代環境中,程序很少直接用機器代碼編寫,但可以用于低級調試、程序修補(特別是當匯編源代碼不可用時)和匯編語言反匯編.

    今天的大多數實用程序都是用高級語言或匯編語言編寫的。然后,源代碼被編譯器、匯編器和鏈接器等實用程序轉換為可執行的機器代碼,但解釋程序的重要例外不會被轉換為機器代碼。然而,解釋器本身可以被視為執行源代碼指令的執行器或處理器,通常由直接可執行的機器代碼(從匯編或高級語言源代碼生成)組成。

    根據定義,機器代碼是程序員可見的最低級別的編程細節,但在內部,許多處理器使用微代碼或優化并將機器代碼指令轉換為微操作序列。這通常不被認為是機器代碼。

    與微碼的關系

    編輯

    在某些計算機體系結構中,機器代碼由一個更基本的底層實現,稱為微代碼,為具有廣泛不同底層數據流的不同計算機模型的產品線或系列提供通用機器語言接口。這樣做是為了便于在不同模型之間移植機器語言程序。這種用途的一個例子是IBMSystem/360系列計算機及其后續產品。數據流路徑寬度為8位至64位及以上,但它們仍然在整個生產線的機器語言級別呈現通用架構。

    使用微碼實現仿真器使計算機能夠呈現完全不同的計算機的體系結構。System/360系列使用它來允許將程序從早期的IBM機器移植到新的計算機系列,例如IBMS/360型號40上的IBM1401/1440/1460模擬器。

    與字節碼的關系

    編輯

    機器碼通常與字節碼(也稱為p碼)不同,字節碼要么由解釋器執行,要么自己編譯成機器碼以更快(直接)執行。一個例外是當處理器被設計為直接使用特定的字節碼作為其機器碼時,例如Java處理器的情況。

    當提及語言功能或庫的平臺相關部分時,機器代碼和匯編代碼有時被稱為本機代碼。

    機器代碼

    存儲在內存中

    編輯

    的哈佛體系結構是一種計算機體系結構與物理上分離的存儲及信號通路的代碼(指令)和數據。今天,大多數處理器出于性能原因實現了這種單獨的信號通路,但實現了改進的哈佛架構,因此它們可以支持諸如從磁盤存儲加載可執行程序作為數據然后執行它的任務。哈佛架構與馮諾依曼架構形成對比,其中數據和代碼存儲在相同的內存中,由處理器讀取,允許計算機執行命令。

    從進程的角度來看,代碼空間是其地址空間中存儲正在執行的代碼的部分。在多任務系統中,這包括程序的代碼段和通常的共享庫。在多線程環境中,一個進程的不同線程共享代碼空間和數據空間,與進程切換相比,xxx減少了上下文切換的開銷。

    人類可讀性

    編輯

    PamelaSamuelson寫道,機器代碼是如此難以閱讀,以至于美國版權局無法確定特定編碼程序是否為原創作品;然而,美國版權局確實允許對計算機程序進行版權注冊并且有時可以對程序的機器代碼進行反編譯,以使其功能更容易被人類理解。然而,反編譯器或反匯編器的輸出將缺少注釋和符號引用,因此雖然輸出可能比目標代碼更容易閱讀,但仍然比原始源代碼更難。對于像SQUOZE這樣的目標代碼格式,此問題不存在,其中源代碼包含在文件中。

    認知科學教授DouglasHofstadter將機器代碼與遺傳代碼進行了比較,他說“查看用機器語言編寫的程序與查看一個原子一個原子的DNA分子大致相當。”

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/127540/

    (6)
    詞條目錄
    1. 機器代碼
    2. 與微碼的關系
    3. 與字節碼的關系
    4. 存儲在內存中
    5. 人類可讀性

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久