複製鏈接
請複製以下鏈接發送給好友

二進制翻譯

鎖定
二進制翻譯(Binary Translation)是一種直接翻譯可執行二進制程序的技術。
中文名
二進制翻譯
外文名
Binary Translation
種    類
解釋執行 、靜態翻譯、.動態翻譯
技    術
直接翻譯可執行二進制程序技術
作    用
把一處理器上的二進制程序翻譯
優    勢
很容易相互移植擴大軟件適用範圍

目錄

二進制翻譯概念

二進制翻譯(Binary Translation)是一種直接翻譯可執行二進制程序的技術,能夠把一種處理器上的二進制程序翻譯到另外一種處理器上執行.它使得不同處理器之間的二進制程序可以很容易地相互移植,擴大了硬件/軟件的適用範圍,有助於打破前面提到的處理器和支持軟件之間互相掣肘影響創新的局面.

二進制翻譯種類

基於軟件的二進制翻譯,可以分為三類:解釋執行,靜態翻譯,動態翻譯。
1.解釋執行對源處理器代碼中的每條指令實時解釋執行,系統不保存也不緩存解釋過的指令,不需要用户干涉,也不進行任何優化.解釋器相對容易開發,比較容易與老的體系結構高度兼容,但代碼執行效率很差。
2.靜態翻譯是在源處理器代碼執行之前對其進行翻譯,將源機器上的二進制可執行程序文件A完全翻譯成目標機器上的二進制可執行程序文件B,然後在目標機上執行程序B.一次翻譯的結果可以多次使用.靜態翻譯器離線翻譯程序,有足夠的時間進行更完整細緻的優化,代碼執行效率較高.然而,靜態翻譯器無法很好地解決自修改代碼,間接過程調用及間接跳轉等問題,需要依賴解釋器的支持;而且靜態翻譯器需要終端用户的參與,這給用户使用造成了很大不便。
3.動態翻譯則在程序運行時對執行到的片斷進行翻譯,克服了靜態翻譯的一些缺點--如由於不能知道控制流中某點的寄存器或內存的值,因此不能實現代碼挖掘;動態翻譯還可以解決大部分實際情況中的自修改代碼問題,而這在靜態翻譯是不可能的[14];動態翻譯可以利用執行時的動態信息來發掘靜態編譯器所不能發現的優化機會;動態翻譯器對用户可以做到完全透明,無需用户干預。