機器碼和字節碼


什么是機器碼

機器碼

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

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

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

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

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

什么是字節碼

字節碼

字節碼(Bytecode)是一種包含執行程序、由一序列 op 代碼/數據對 組成的二進制文件字節碼是一種中間碼,它比機器碼更抽象,需要直譯器轉譯后才能成為機器碼的中間代碼。

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

字節碼主要為了實現特定軟件運行和軟件環境、與硬件環境無關。字節碼的實現方式是通過編譯器和虛擬機器。編譯器將源碼編譯成字節碼,特定平台上的虛擬機器將字節碼轉譯為可以直接執行的指令。字節碼的典型應用為Java bytecode。

字節碼在運行時通過JVM(JAVA虛擬機)做一次轉換生成機器指令,因此能夠更好的跨平台運行。

總結:字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯后才能成為機器碼。


免責聲明!

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



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