機器碼和位元組碼分別介紹

安全劍客發表於2019-03-25
什麼是機器碼
什麼是機器碼

機器碼(machine code),學名機器語言指令,有時也被稱為原生碼(Native Code), 是電腦的CPU可直接解讀的資料

通常意義上來理解的話,機器碼就是計算機可以直接執行,並且執行速度最快的程式碼。

用機器語言編寫程式,程式設計人員要首先熟記所用計算機的全部指令程式碼和程式碼的涵義。手程式設計序時,程式設計師得自己處理每條指令和每一資料的儲存分配和輸入輸出,還得記住程式設計過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作,編寫程式花費的時間往往是實際執行時間的幾十倍或幾百倍。而且,編出的程式全是些0和1的指令程式碼,直觀性差,還容易出錯。現在,除了計算機生產廠家的專業人員外,絕大多數的程式設計師已經不再去學習機器語言了。

  • 機器語言是微處理器理解和使用的,用於控制它的操作二進位制程式碼。
  • 8086到Pentium的機器語言指令長度可以從1位元組到13位元組。
  • 儘管機器語言好像是很複雜的,然而它是有規律的。
  • 存在著多至100000種機器語言的指令。這意味著不能把這些種類全部列出來。

總結: 機器碼是電腦CPU直接讀取執行的機器指令,執行速度最快,但是非常晦澀難懂,也比較難編寫,一般從業人員接觸不到。

什麼是位元組碼
位元組碼

位元組碼(Bytecode)是一種包含執行程式、由一序列 op 程式碼/資料對 組成的 二進位制檔案 位元組碼是一種中間碼 ,它比機器碼更抽象,需要直譯器轉譯後才能成為機器碼的中間程式碼。

通常情況下它是已經經過編譯,但與特定機器碼無關。位元組碼通常不像原始碼一樣可以讓人閱讀,而是編碼後的數值常量、引用、指令等構成的序列。

位元組碼主要為了實現特定軟體執行和軟體環境、與硬體環境無關。位元組碼的實現方式是透過編譯器和虛擬機器。編譯器將原始碼編譯成位元組碼,特定平臺上的虛擬機器將位元組碼轉譯為可以直接執行的指令。位元組碼的典型應用為Java bytecode。

位元組碼在執行時透過JVM(JAVA虛擬機器)做一次轉換生成機器指令,因此能夠更好的跨平臺執行。

總結: 位元組碼是一種中間狀態(中間碼)的二進位制程式碼(檔案)。需要直譯器轉譯後才能成為機器碼。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2639217/,如需轉載,請註明出處,否則將追究法律責任。

相關文章