機器碼和位元組碼分別介紹
機器碼(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 位元組碼介紹Python
- 什麼是位元組碼?python位元組碼詳細介紹!Python
- 虛擬機器位元組碼執行引擎虛擬機
- jvm位元組碼和類載入機制JVM
- 位元組碼
- HanLP分類模組的分詞器介紹HanLP分詞
- Java 位元組碼Java
- 位元組碼指令
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- 計算機原碼, 反碼,補碼的介紹計算機
- 位元組碼指令分析 ++i 和 i++
- Dalvik 和 Java 位元組碼的比較Java
- 深入理解虛擬機器之虛擬機器位元組碼執行引擎虛擬機
- 深入學習Java虛擬機器——虛擬機器位元組碼執行引擎Java虛擬機
- 位元組碼基礎
- 位元組碼詳解
- JWebAssembly:Java 位元組碼到 WebAssembly 編譯器WebJava編譯
- Java 虛擬機器之五:Java位元組碼檔案結構Java虛擬機
- 深入理解 python 虛擬機器:位元組碼靈魂——Code obejctPython虛擬機
- Android 位元組碼插樁Android
- JAVA動態位元組碼Java
- 【Java】JVM位元組碼分析JavaJVM
- 位元組碼檔案解剖
- (一) 機器學習和機器學習介紹機器學習
- pyc位元組碼文字轉python程式碼Python
- JVM學習筆記(四)—— 虛擬機器位元組碼執行引擎JVM筆記虛擬機
- Java的位元組碼和ABAP load的比較Java
- Python指令碼和網頁有什麼區別?差異介紹!Python指令碼網頁
- mqtt介紹和go程式碼實現MQQTGo
- RocketMQ--原始碼編譯和介紹MQ原始碼編譯
- 輕鬆看懂Java位元組碼Java
- 位元組碼底層分析String
- Java位元組碼指令表Java
- Java類轉位元組碼工具Java
- JVM 模板直譯器之如何根據位元組碼生成彙編碼?JVM
- 深入瞭解jvm-2Edition-虛擬機器位元組碼執行引擎JVM虛擬機
- Unicode編碼介紹Unicode
- 淺談位元組碼增強技術系列1-位元組碼增強概覽