機器碼監視器(又名機器語言監視器)是允許用戶輸入命令以預覽並修改計算機上記憶體位置的軟體,同時有著保存記憶體內容從/至次級存儲的選項。一些完整功能的機器碼監視器提供了對機器語言程式執行(就像調試器一樣)的詳細控制("單步跟蹤"),包括絕對地址的代碼彙編和反編譯的能力。
基本介紹
- 中文名:機器碼監視器
- 外文名:Machine code monitor
- 學科:電氣工程
- 別稱:機器語言監視器
詳解,機器語言簡介,與微碼的關係,與位元組碼的關係,
詳解
機器碼監視器於20世紀70年代與80年代的家用計算機時期變得火熱,且有時候作為常駐固件在某些計算機中提供(例如Commodore 128中的內建監視器)。在顯示器中執行所有程式代替一個完整的符號彙編程式並不是聞所未聞。即使在完整功能的彙編程式變得可用之後,機器碼監視器對於調試程式也是必不可少的。調試程式通常在代碼進行測試時設定斷點(例如使用6502彙編語言中的BRK指令)並啟動程式。 當微處理器遇到了斷點時測試程式將中斷且控制會轉移至機器碼監視器中。通常這將觸發暫存器轉儲隨後監視器將等待程式設計師輸入。在此點激活可能包含檢查記憶體內容、修補碼和/或也許會在改變處理器暫存器之前重新啟動測試程式。
從頭編寫的彙編語言軟體數量的普遍下降使得機器碼監視器成為了一種失落的藝術。在大多數使用高級語言的系統上,調試器通過更為抽象和友好的界面呈現程式運行情況。然而,仍有使用機器碼監視器的情況,特別是在業餘愛好計算機的領域。
機器語言簡介
機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能。機器語言具有靈活、直接執行和速度快等特點。不同種類的計算機其機器語言是不相通的,按某種計算機的機器指令編制的程式不能在另一種計算機上執行。
要用機器語言編寫程式,編程人員需首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程式時,程式設計師要自己處理每條指令和每一數據的存儲分配和輸入輸出,還需記住編程過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作,編寫程式花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,這樣編寫出的程式完全是0與1的指令代碼,可讀性差且容易出錯。在現今,除了計算機生產廠家的專業人員外,絕大多數程式設計師已經不再學習機器語言。
1)機器語言是微處理器理解和使用的用於控制它的操作的二進制代碼。
2)8086到Pentium的機器語言指令長度可以從1位元組到13位元組。
3)儘管機器語言看似非常複雜,但它是有規律的。
4)現今存在著超過100000種機器語言的指令,因此不可能將它們的種類完全列出。
與微碼的關係
在某些計算機體系結構中,機器代碼是由一個更基本的稱為微代碼的底層實現的,它提供了一個通用的機器語言接口,用於跨越不同型號的計算機的系列或不同的底層數據流。這樣做是為了便於在不同型號之間移植機器語言程式。這種用法的一個例子是IBMSystem / 360系列計算機及其後續產品。數據流路徑寬度從8位到64位甚至更高時,它們在整個生產線上的機器語言級別上呈現出一種通用架構。
使用微碼實現仿真器使計算機能夠呈現完全不同的計算機的體系結構。System / 360系列使用它可以將早期IBM機器上的程式移植到新系列計算機上,例如IBM S / 360模型40上的IBM1401/1440/1460仿真器。
與位元組碼的關係
機器代碼通常與位元組碼(也稱為p代碼)不同,後者或者由解釋器執行,或者將其自身編譯為機器代碼以便更快速(直接)執行。當處理器被設計為直接使用特定的位元組碼作為其機器碼時,例外情況是Java處理器。
當引用語言特徵或庫的平台相關部分時,機器代碼和彙編代碼有時稱為本機代碼。