機器語言
此條目沒有列出任何參考或來源。 (2014年4月3日) |
程式執行 |
---|
基礎概念 |
代碼類型 |
編譯策略 |
|
知名執行環境 |
著名編譯器及工具鏈 |
機器語言(machine language)是一種指令集的體系。這種指令集稱為機器碼(machine code),是電腦的CPU或GPU可直接解讀的資料。
機器碼有時也被稱為原生碼(Native Code),這個名詞比較強調某種程式語言或函式庫與執行平台相關的部份。
簡介
機器語言是用二進制代碼表示的、電腦能直接辨識和執行的一種機器指令的集合。它是電腦的設計者通過電腦的硬體結構賦予電腦的操作功能。機器語言具有靈活、直接執行和速度快等特點。不同種類的電腦其機器語言是不相容的,按某種電腦的機器指令編制的程式不能在另一種電腦上執行。
要用機器語言編寫程式,編程人員需首先熟記所用電腦的全部指令代碼和代碼的涵義。手編程式時,程式設計師要自己處理每條指令和每一資料的儲存分配和輸入輸出,還需記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作,編寫程式花費的時間往往是實際執行時間的幾十倍或幾百倍。而且,這樣編寫出的程式完全是0與1的指令代碼,可讀性差且容易出錯。在現今,除了電腦生產廠家的專業人員外,絕大多數程式設計師已經不再學習機器語言。
- 機器語言是微處理器理解和使用的用於控制它的操作的二進制代碼。
- 8086到Pentium的機器語言指令長度可以從1位元組到13位元組。
- 儘管機器語言看似非常複雜,但它是有規律的。
- 現今存在著超過100000種機器語言的指令。
以下是一些範例:
- 指令部份的範例
- 0000 代表 載入(LOAD)
- 0001 代表 儲存(STORE)
...
- 暫存器部份的範例
- 0000 代表暫存器 A
- 0001 代表暫存器 B
...
- 記憶體部份的範例
- 000000000000 代表位址為 0 的記憶體
- 000000000001 代表位址為 1 的記憶體
- 000000010000 代表位址為 16 的記憶體
- 100000000000 代表位址為 2^11 的記憶體
- 整合範例
- 0000,0000,000000010000 代表 LOAD A, 16
- 0000,0001,000000000001 代表 LOAD B, 1
- 0001,0001,000000010000 代表 STORE B, 16
- 0001,0001,000000000001 代表 STORE B, 1