欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬硬件系統(tǒng)及其指令執(zhí)行方法、以及虛擬機的制作方法

文檔序號:6463028閱讀:456來源:國知局

專利名稱::虛擬硬件系統(tǒng)及其指令執(zhí)行方法、以及虛擬機的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計算機技術(shù),特別涉及虛擬硬件系統(tǒng)、應(yīng)用于虛擬硬件系統(tǒng)的指令執(zhí)行方法,以及虛擬才幾。
背景技術(shù)
:虛擬硬件技術(shù)是指通過軟件實現(xiàn)硬件功能。圖1為目前虛擬硬件系統(tǒng)的結(jié)構(gòu)示意圖。如圖l所示,虛擬硬件系統(tǒng)包括在硬件平臺上構(gòu)建起來的文件子系統(tǒng)和虛擬機子系統(tǒng)。其中,文件子系統(tǒng)是由存儲介質(zhì)實現(xiàn)的,用于存儲指令文件。目前的文件子系統(tǒng)由單個指令文件組成,該單個指令文件中的指令構(gòu)成一個完整的固件程序。虛擬機子系統(tǒng)負(fù)責(zé)加載指令文件并執(zhí)行,具體包括以下步驟步驟1:在初始化時將文件子系統(tǒng)中唯一的指令文件加載為一個代碼段(Segment)?,F(xiàn)有的虛擬硬件系統(tǒng)只運行加載一個代碼段。其中,加載是執(zhí)行程序之前的必要操作。加載并不是將指令文件中的內(nèi)容讀取到某個存儲介質(zhì),而是一個記錄指令在指令文件中的物理起始地址的過程。指令文件是實際存儲在存儲介質(zhì)中的,指令文件中的每條語言都具有其物理地址。指令文件中包括描述語言部分和指令部分,指令部分即代碼段。在加載時,只記錄指令部分的物理起始地址,即代碼段物理起始地址。指令文件中指令的讀取地址都采用程序地址表示,程序地址是指令在指令文件中的偏移量。程序地址的0000H是從指令部分開始的。描述語言不涉及程序地址。步驟2:逐一執(zhí)行代碼段中的指令,通過執(zhí)行指令文件從而構(gòu)建虛擬硬件運行環(huán)境。本步驟中,虛擬機子系統(tǒng)獲取待執(zhí)行指令的程序地址,將程序地址與記錄的代碼段物理起始地址相加,從相加結(jié)果指示的物理地址上讀取指令并執(zhí)行。在實際中,不同虛擬硬件系統(tǒng)可能需要實現(xiàn)相同的子功能,這些子功能對應(yīng)的指令內(nèi)容相同。由于現(xiàn)有文件子系統(tǒng)是由單個指令文件組成,因此需要在不同虛擬硬件系統(tǒng)中的指令文件中設(shè)計并存儲相同的指令文件,這些指令文件不能在其它虛擬硬件系統(tǒng)中使用。如果其它虛擬硬件也需要實現(xiàn)相同功能,則需要重復(fù)設(shè)計并保存在其唯一的指令文件中。設(shè)想,如果在虛擬硬件系統(tǒng)中保存多個指令文件,以實現(xiàn)不同子功能,通過指令文件的相互調(diào)用實現(xiàn)虛擬硬件系統(tǒng)的功能,那么實現(xiàn)不同子功能的指令文件可以在其它需要該子功能的虛擬硬件系統(tǒng)中重復(fù)使用,將大大降低虛擬硬件系統(tǒng)的設(shè)計重復(fù)性。由于虛擬硬件系統(tǒng)只支持單指令文件的加載,只允許將指令文件加載到一個代碼段,因此,如果將多個指令文件加載到一個代碼段,那么需要預(yù)先設(shè)置多個被加載指令文件的程序地址空間相互不能沖突。不然,地址沖突將造成無法正確讀取指令。但是,由于虛擬硬件系統(tǒng)的開放性,使得應(yīng)用開發(fā)工作相互獨立,不可能讓虛擬硬件系統(tǒng)平臺開發(fā)者和子功能開發(fā)者設(shè)計的各指令文件的程序地址空間互不重疊,仍會出現(xiàn)地址沖突問題,不能實現(xiàn)指令文件之間的相互調(diào)用。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了一種虛擬硬件系統(tǒng)中的指令執(zhí)行方法,能夠?qū)崿F(xiàn)虛擬硬件系統(tǒng)中多個指令文件的加載和執(zhí)行。在同一進程中加載多個指令文件;在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。其中,所述在同一進程中加載多個指令文件為在同一進程中,將多個指令文件分別加載為代碼段,記錄各代碼段和代碼段物理起始地址之間的對應(yīng)關(guān)系;所述確定待執(zhí)行指令所在指令文件為確定待執(zhí)行指令所在代碼段,從所述對應(yīng)關(guān)系中查找所在代碼段的物理起始地址;所述從所確定的指令文件中讀取所述程序地址上的指令為將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,/人相加結(jié)果指示的物理地址上讀取指令。其中,所述確定待執(zhí)行指令所在代碼段為在代碼段內(nèi)執(zhí)行指令時,將當(dāng)前執(zhí)行的代碼段確定為待執(zhí)行指令所在代碼段;在跨代碼段指令調(diào)用時,將被調(diào)用指令所在代碼段確定為待執(zhí)行指令所在代碼段。其中,所述將多個指令文件分別加載為代碼段包括a、將指令文件中的主文件加載為代碼段;b、根據(jù)主文件中所需調(diào)用指令文件信息,依次將與主文件中的所需調(diào)用指令文件信息對應(yīng)的副文件分別加載為代碼段;c、遍歷每個已加載的副文件,根據(jù)已加載副文件中的所需調(diào)用指令文件信息,依次將與已加載副文件中的所需調(diào)用指令文件信息對應(yīng)的副文件加載為代碼段。其中,所述將多個指令文件分別加載為代碼,殳,記錄各代碼段和代碼段物理起始地址之間的對應(yīng)關(guān)系為在所述系統(tǒng)啟動時,將指令文件中的主文件加載為代碼段,記錄得到的代碼段及其物理起始地址之間的對應(yīng)關(guān)系;在系統(tǒng)的當(dāng)前執(zhí)行指令為加載指令時,將加載指令指示的指令文件加載為代碼段,記錄得到的代碼段及其物理起始地址之間的對應(yīng)關(guān)系。所述加載為將一個指令文件加載為一個代碼段;或者,將一個指令文件加載為多個代碼段。該方法進一步包括判斷出跨代碼段指令調(diào)用時,記錄當(dāng)前執(zhí)行指令的程序地址和所在代碼段,執(zhí)行被調(diào)用代碼段中的被調(diào)用指令;調(diào)用返回時,返回調(diào)用前記錄的程序地址和代碼段指示的物理地址,繼續(xù)執(zhí)行后續(xù)指令。其中,所述記錄當(dāng)前執(zhí)行指令的程序地址和所在代碼段為將當(dāng)前執(zhí)行指令所在代碼段信息和當(dāng)前執(zhí)行指令的程序地址入棧;所述執(zhí)行被調(diào)用代碼段中的被調(diào)用指令為將被調(diào)用指令的程序地址和所在代碼段確定為當(dāng)前待執(zhí)行指令的程序地址和所在代碼段,從所述對應(yīng)關(guān)系中查找該所在代碼段的物理起始地址;將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取凈皮調(diào)用指令;所述返回調(diào)用前記錄的程序;也址和代碼段指示的物理地址為將調(diào)用前保存的當(dāng)前執(zhí)行指令的程序地址和代碼段信息出棧。較佳地,所述對應(yīng)關(guān)系進一步包括各代碼段和代碼段程序起始地址之間的對應(yīng)關(guān)系;所述從所述對應(yīng)關(guān)系中查找所在代碼段的物理起始地址的步驟進一步包括查找所述所在代碼段的程序起始地址;所述將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加的步驟進一步包括將所查找到的物理起始地址減去查找到的程序起始地址后,與所述待執(zhí)行指令的程序地址相加。其中,所述跨代碼段指令調(diào)用是根據(jù)當(dāng)前執(zhí)行指令的類型判斷的;在當(dāng)前執(zhí)行指令的類型為預(yù)先設(shè)置的調(diào)用函數(shù)時,判定為跨代碼段指令調(diào)用;或者,在當(dāng)前執(zhí)行指令調(diào)用預(yù)先設(shè)置的特定地址時,判定為跨代碼段指令調(diào)用。本發(fā)明還提供了一種虛擬硬件系統(tǒng),能夠?qū)崿F(xiàn)虛擬硬件系統(tǒng)中多個指令文件的加載和執(zhí)行。該系統(tǒng)包括文件子系統(tǒng)和虛擬機子系統(tǒng);所述文件子系統(tǒng),用于保存指令文件;所述虛擬機子系統(tǒng),用于在同一進程中,加載多個指令文件,在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。本發(fā)明還提供了一種虛擬機,能夠?qū)崿F(xiàn)多個指令文件的加載和執(zhí)行。該虛擬機包括加載單元和執(zhí)行單元;所述加載單元,用于在同一進程中,加載多個指令文件;所述執(zhí)行單元,用于在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。其中,所述加載單元包括加載模塊和發(fā)送模塊;所述加栽模塊,用于在同一進程中,將多個指令文件分別加載為代碼段;所述發(fā)送模塊,用于將所述加載過程中得到的代碼段和該代碼段物理起始地址之間的對應(yīng)關(guān)系發(fā)送給所述執(zhí)行單元;所述執(zhí)行單元包括映射關(guān)系存儲模塊和指令處理模塊;所述映射關(guān)系存儲模塊,用于存儲接收到的對應(yīng)關(guān)系;所述指令處理模塊,確定待執(zhí)行指令所在代碼段和待執(zhí)行指令的程序地址,從映射關(guān)系存儲模塊保存的對應(yīng)關(guān)系中查找所在代碼段的物理起始地址,將查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令。其中,所述映射關(guān)系存儲模塊保存的對應(yīng)關(guān)系包括代碼段的代碼段標(biāo)識和該代碼段的物理起始地址之間的對應(yīng)關(guān)系;所述指令處理模塊包括處理子模塊、段維護子模塊和程序計數(shù)器;所述處理子模塊,用于從段維護子沖莫塊獲取當(dāng)前代碼段標(biāo)識,從程序計數(shù)器獲取程序地址,從映射關(guān)系存儲才莫塊的對應(yīng)關(guān)系中查找與所獲取的代碼段標(biāo)識對應(yīng)的物理起始地址,將所述對應(yīng)的物理起始地址與從程序計數(shù)器獲取的程序地址相加,從相加結(jié)果指示的物理地址上讀取待執(zhí)行指令并執(zhí)行;當(dāng)前指令執(zhí)行完畢時,將程序計數(shù)器的值更新為下一個待執(zhí)行指令的程序地址;所述段維護子4莫塊,用于記錄當(dāng)前運行程序所在代碼段標(biāo)識;所述程序計數(shù)器,用于記錄當(dāng)前運行程序的程序地址。所述處理子模塊進一步用于,在跨代碼段指令調(diào)用時,向所述段維護子模塊發(fā)送攜帶待調(diào)用指令所在代碼段標(biāo)識的調(diào)用通知,并保存當(dāng)前程序計數(shù)器的值;在調(diào)用返回時,向所述段維護子模塊發(fā)送調(diào)用返回通知,將調(diào)用前保存的程序計數(shù)器的值賦值給程序計數(shù)器;所述段維護子模塊,進一步用于在接收到所述調(diào)用通知時,將當(dāng)前代碼段標(biāo)識保存,將調(diào)用通知中的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識;在接收到調(diào)用返回通知時,將調(diào)用前保存的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識。根據(jù)以上技術(shù)方案可見,采用本發(fā)明指令執(zhí)行方案,無需為指令文件分配互不相同程序地址,在同一進程中加載多個指令文件,每個指令文件使用相同的程序地址空間,在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件,然后根據(jù)待執(zhí)行指令的程序地址從所確定的指令文件中讀取指令并執(zhí)行??梢姡捎谠谧x取指令之前增加了確定指令所在指令文件的步驟,只需要利用指令在該指令文件中的程序地址從該指令文件中讀取指令即可,省略了為指令文件分配互不相同程序地址的步驟,不會產(chǎn)生因程序地址沖突而需要重定位的情況。同時,加載多個指令文件支持指令文件之間的相互調(diào)用,那么,可以設(shè)計不同指令文件具有不同子功能,具有不同子功能的指令文件可以重復(fù)應(yīng)用于不同的虛擬硬件系統(tǒng),為虛擬硬件系統(tǒng)實現(xiàn)動態(tài)鏈接庫提供了可能,指令文件的重復(fù)使用還減少了虛擬硬件系統(tǒng)的設(shè)計重復(fù)性。當(dāng)同一虛擬硬件系統(tǒng)實現(xiàn)多種應(yīng)用時,每個應(yīng)用都能調(diào)用系統(tǒng)中指令文件提供的子功能,使得同一指令文件被多個應(yīng)用復(fù)用,節(jié)省了文件子系統(tǒng)的存儲空間,此外,模塊化的指令文件,更加便于應(yīng)用升級和維護。由于多個指令文件加載在同一進程中,因此本發(fā)明在跨指令文件調(diào)用時,采用進程內(nèi)部的函數(shù)調(diào)用和返回方式,不需要進程間的切換,執(zhí)行效率高,內(nèi)存消耗少,而且簡化編程。圖1為現(xiàn)有技術(shù)中虛擬硬件系統(tǒng)的結(jié)構(gòu)示意圖。圖2為本發(fā)明實施例中指令執(zhí)行方法的流程圖。圖3為本發(fā)明另一實施例中指令執(zhí)行方法的流程圖。圖4為本發(fā)明實施例中虛擬硬件系統(tǒng)的結(jié)構(gòu)示意圖。具體實施方式本發(fā)明在設(shè)計指令文件時,每一個指令文件使用相同的程序地址空間,程序地址都可以從0000H開始。加載時,在同一進程中加載多個指令文件;在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行,從而實現(xiàn)了多個指令文件的加載和執(zhí)行。其中,進程是指應(yīng)用程序的運行實例。當(dāng)在同一進程加載多個文件時,被加載的多個文件共享同一進程的運行環(huán)境。運行環(huán)境包括程序空間、數(shù)據(jù)空間等資源??梢姡捎帽景l(fā)明指令執(zhí)行方案,采用指令文件信息和程序地址二維信息定位待指令執(zhí)行的物理地址,因此無需為指令文件分配互不相同的程序地址,不同指令文件可以使用相同的程序地址,省略了分配互不相同程序地址的步驟,并且從根本上避免了重定位問題的產(chǎn)生。那么,利用本發(fā)明,虛擬硬件系統(tǒng)的開發(fā)者就可以設(shè)計多個具有不同子功能的指令文件,這些實現(xiàn)不同子功能的指令文件可以在其他需要該子功能的虛擬硬件系統(tǒng)中重復(fù)使用,從而大大降低虛擬硬件系統(tǒng)的設(shè)計重復(fù)性。圖2為本發(fā)明實施例中指令執(zhí)行方法的流程圖。如圖2所示,該方法包括以下步驟步驟201:在同一進程中,將多個指令文件分別加載為代碼段,記錄各代碼段和代碼段物理起始地址之間的對應(yīng)關(guān)系。本步驟中,一個指令文件可以加載為一個代碼段。步驟202:在代碼段內(nèi)執(zhí)行指令時,將當(dāng)前執(zhí)行的代碼段確定為待執(zhí)行指令所在代碼段,從步驟201記錄的對應(yīng)關(guān)系中查找所在代碼段的物理起始地址。其中,當(dāng)前執(zhí)行的代碼段信息由系統(tǒng)提供的變量或寄存器維護,并實時更新。步驟203:將所查找到的物理起始地址與待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令。在跨代碼段指令調(diào)用時,將被調(diào)用指令所在代碼段確定為待執(zhí)行指令所在代碼段,從步驟201記錄的對應(yīng)關(guān)系中查找所在代碼段的物理起始地址,-將所查找到的物理起始地址與待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令,從而實現(xiàn)了跨代碼段調(diào)用。當(dāng)然,為了實現(xiàn)調(diào)用后的返回,在判斷跨代碼段指令調(diào)用時,保存當(dāng)前執(zhí)行指令所在代碼段標(biāo)識和程序地址,然后再執(zhí)行指令調(diào)用;調(diào)用返回時,返回調(diào)用前保存的代碼_^標(biāo)識和程序地址指示的物理地址,繼續(xù)執(zhí)行后續(xù)指令。其中,跨代碼段的指令調(diào)用的實現(xiàn)同時解決了跨指令文件的指令調(diào)用,實現(xiàn)了指令文件相互調(diào)用。如果代碼段的長度受到硬件限制,且指令文件較長,則指令文件設(shè)計時,可以將一個指令文件設(shè)計為包括多個代碼段。加載時,一個指令文件加載為多個代碼段,記錄各代碼段的物理起始地址。在設(shè)計指令文件時,可以將一個指令文件中的多個代碼段的程序起始地址都設(shè)置為0000H,也可以設(shè)置為互不相同的^f呈序起始地址。對于每個代碼段的程序起始地址都為OOOOH的情況,在步驟203確定待讀取指令的物理地址時,可以直接將所查找到的物理起始地址與待執(zhí)行指令的程序地址相加,得到待讀取指令的物理地址。舉一個例子,指令文件2加載出代碼段S2和S3,其中,S2的物理起始地址為A000H;S3的物理起始地址為CO0OH,S2和S3的程序起始地址都為0000H;當(dāng)待讀取指令為S3中程序地址為OOOIH的指令時,可以從(C0OOH+0O01H)指示的物理地址讀取到該指令。對于一個指令文件加載出來的多個代碼段的起始程序地址不同的情況,由于指令的程序地址不是相對于所在代碼段起始位置的偏移量,因此,在步驟203確定待讀取指令的物理地址時,需要先將查找到的物理起始地址減去待執(zhí)行指令所在代碼段的程序起始地址,然后再與待執(zhí)行指令的程序地址相加,得到待讀取指令的物理地址。其中,待執(zhí)行指令所在代碼段的程序起始地址可以在步驟201中記錄,具體為在步驟201在記錄對應(yīng)關(guān)系時,進一步記錄各代碼段和代碼段程序起始地址之間的對應(yīng)關(guān)系。舉一個例子,指令文件2加載出代碼段S2和S3,其中,S2的物理起始地址為A000H,程序起始地址為1000H;S3的物理起始地址為C000H,程序起始地址為2000H;當(dāng)待讀取指令為S3中程序地址為2001H的指令時,如果從(C0OOH+2001H)-EOOIH指示的物理地址讀取指令,會出現(xiàn)讀取錯誤,此時,應(yīng)采用本段上述方法,從(C000H_2000H+2001H)=C001H指示的物理地址讀取指令。當(dāng)然,對于每個代碼段的程序起始地址都為0000H的情況,以及一個指令文件加載為一個代碼段的情況,也可以在加載時記錄各代碼段的程序起始地址,只是此時所有代碼段的程序起始地址都為0000H而已,在計算待讀取指令的物理地址時,相應(yīng)的減掉一個0000H。這4吏得本發(fā)明的指令執(zhí)行方法可以兼容以上各種加載情況。下面舉另一實施例對本發(fā)明進行詳細(xì)描述。本實施例中,一個指令文件加載為一個代碼段;采用程序計數(shù)器記錄指令的程序地址,那么程序計數(shù)器就可以跟蹤程序執(zhí)行的進度,標(biāo)識當(dāng)前指令文件執(zhí)行的具體位置。圖3為本發(fā)明另一實施例中指令文件的執(zhí)行方法。該方法包括以下步驟步驟300:在指令文件設(shè)計時,將指令文件中各指令的讀取地址表示程序地址。步驟301:系統(tǒng)啟動時,虛擬機子系統(tǒng)將待加載指令文件分別加載為代碼段。待加載指令文件又分為主文件和副文件。主文件為首先處理的指令文件,副文件為主文件需要調(diào)用的指令文件,副文件之間可以相互調(diào)用。主文件中記錄的信息包括指令和所需調(diào)用指令文件信息;副文件中同樣記錄有指令和所需調(diào)用指令文件信息。例如,當(dāng)虛擬硬件系統(tǒng)實現(xiàn)公交卡功能時,實現(xiàn)公交卡功能的指令文件為主文件;實現(xiàn)公交卡功能中的用戶加密、余額查詢、充值等功能的指令文件為副文件。當(dāng)虛擬硬件系統(tǒng)實現(xiàn)多應(yīng)用功能時,例如在實現(xiàn)公交卡功能的同時,還可以實現(xiàn)才交園卡功能,那么該虛擬石更件系統(tǒng)就包括多個主文件。在加載時,會有預(yù)先設(shè)置的信息指示哪個指令文件為當(dāng)前主文件。當(dāng)然,虛擬硬件系統(tǒng)還可以通過接收外部信息得知哪個指令文件為主文件。本步驟的加載過程具體包括1)將文件子系統(tǒng)中的當(dāng)前主文件加載為代碼段,根據(jù)存儲在主文件中的所需調(diào)用指令文件信息確定待處理副文件,如果沒有副文件則加載過程結(jié)束;如果有副文件,貝'J,2)依次將與主文件中所需調(diào)用指令文件信息對應(yīng)的副文件分別加載為代碼段;3)在該副文件加載過程中,還需遍歷每個已加載的副文件,根據(jù)已加載副文件中的所需調(diào)用指令文件信息,依次將與已加載副文件中的所需調(diào)用指令文件信息對應(yīng)的副文件加載為代碼段,直到處理完所有所需指令文件。在實際中,還可以靈活的選擇加載某個指令文件中的某個代碼段。加載信息同樣保存在調(diào)用指令文件信息中。步驟302:記錄代碼段的代碼段標(biāo)識和該代碼段在指令文件中的物理起始地址。其中,對應(yīng)關(guān)系可以采用如下表1示出的一種地址映射表的表結(jié)構(gòu)存儲映射關(guān)系。如表l所示,該地址映射表包括代碼段標(biāo)識和代碼段物理起始地址。<table>tableseeoriginaldocumentpage16</column></row><table>表1當(dāng)然,在存儲空間允許的情況下,可以不記錄代碼段物理起始地址,而是記錄各程序地址對應(yīng)的物理地址。這樣就不必通過計算得到待執(zhí)行指令的物理地址,而是直接查找與待執(zhí)行指令的程序地址對應(yīng)的物理地址。步驟303:從代碼段1中地址為0000H的指令開始執(zhí)行指令?!渲校a段1為最先加載的代碼段,通常為與主文件對應(yīng)的、程序地址為0000H的指令所在代碼段。本步驟具體包括將程序計數(shù)器清零;將代碼段1的代碼段標(biāo)識賦值給代碼段跟蹤變量。該代碼段跟蹤變量用于記錄和維護當(dāng)前執(zhí)行指令所在代碼段,代碼段跟蹤變量的值可以為代碼段標(biāo)識。當(dāng)沒有跨代碼段指令調(diào)用時,代碼段跟蹤變量的值不變,當(dāng)出現(xiàn)跨代碼段的指令調(diào)用時,將代碼段跟蹤變量的值被切換為被調(diào)用指令所在代碼段的標(biāo)識。步驟304:從代碼段跟蹤變量獲取當(dāng)前代碼段標(biāo)識,從程序計數(shù)器讀取當(dāng)前程序地址;從步驟302記錄的對應(yīng)關(guān)系中,查找當(dāng)前代碼,殳的物理起始地址,將查找到的物理起始地址與當(dāng)前程序地址相加,從相加結(jié)果指示的物理地址中獲取指令并執(zhí)行。步驟305:根據(jù)當(dāng)前執(zhí)行的指令,判斷是否出現(xiàn)跨代碼段指令調(diào)用,如果不是,則執(zhí)行步驟306;如果是,判定跨代碼段調(diào)用,則執(zhí)行步驟307。本步驟中,判斷是否出現(xiàn)跨代碼段的指令調(diào)用方式為在當(dāng)前執(zhí)行指令為調(diào)用特定地址時,判定跨代碼段調(diào)用。例如,當(dāng)虛擬硬件虛擬8051處理器時,設(shè)置FFFFH為特定地址,當(dāng)指令指向FFFFH時,則執(zhí)行步驟307。判斷是否出現(xiàn)跨代碼段的指令調(diào)用方式還可以為在當(dāng)前執(zhí)行指令為預(yù)先設(shè)置的調(diào)用函數(shù)時,判定跨代碼段調(diào)用。該預(yù)先設(shè)計的調(diào)用函數(shù)可以采用系統(tǒng)保留指令函數(shù)。例如,在當(dāng)前執(zhí)行代碼段1中的指令函數(shù)為A5(S2,2500)時,表示調(diào)用代碼段2中程序地址為2500H的指令,此時判定跨代碼段調(diào)用。指令函數(shù)A5中的參數(shù)含義及其對應(yīng)操作可以預(yù)先定義。步驟306:獲取下一條待執(zhí)行指令的程序地址,刷新程序計數(shù)器,然后返回執(zhí)4亍步驟304。本步驟中,根據(jù)當(dāng)前執(zhí)行的指令,采用下一條待執(zhí)行指令的程序地址更新程序計數(shù)器的值如果當(dāng)前指令無跳轉(zhuǎn),則將程序計數(shù)器的當(dāng)前值加一預(yù)設(shè)指令長度;如果當(dāng)前指令有跳轉(zhuǎn),-則將程序計數(shù)器的值更新為跳轉(zhuǎn)到的程序地址。跳轉(zhuǎn)包括直接跳轉(zhuǎn)和相對跳轉(zhuǎn),直接跳轉(zhuǎn)時,將程序計數(shù)器賦值為跳轉(zhuǎn)目標(biāo)地址(為程序地址),相對跳轉(zhuǎn)時,將程序計數(shù)器的當(dāng)前值加一跳轉(zhuǎn)量。步驟307:記錄當(dāng)前指令所在代碼段的代碼段標(biāo)識,以及該指令的程序地址,用于唯一定位當(dāng)前執(zhí)行指令的絕對位置。本步驟中,將代碼段跟蹤變量的值和程序計數(shù)器的當(dāng)前值保存下來。考慮到可能經(jīng)多次調(diào)用才能返回當(dāng)前代碼段,可以將代碼段跟蹤變量的值和程序計數(shù)器的當(dāng)前值入棧,并在調(diào)用返回時出棧,以提供調(diào)用前的指令執(zhí)行位置,使得調(diào)用返回時能夠繼續(xù)當(dāng)前的指令。步驟308:根據(jù)當(dāng)前執(zhí)行指令,獲取待調(diào)用指令所在代碼段的段標(biāo)識和待調(diào)用指令的程序地址,將待調(diào)用指令所在代碼段的段標(biāo)識賦值給代碼段跟蹤變量,將待調(diào)用指令的程序地址賦值給程序計數(shù)器;執(zhí)行步驟309。以當(dāng)前執(zhí)行前述指令A(yù)5(S2,2500)為例,將2賦值給代碼段跟蹤變量,將2500賦值給程序計數(shù)器。步驟309:從代碼段跟蹤變量獲取當(dāng)前代碼段的段標(biāo)識,從程序計數(shù)器讀取當(dāng)前程序地址;從步驟302記錄的對應(yīng)關(guān)系中,查找當(dāng)前代碼段的物理起始地址,將查找到的物理起始地址與當(dāng)前程序地址相加,從相加結(jié)果指示的物理地址中獲取指令并執(zhí)行。實際上,該步驟309與步驟304相同。待步驟309執(zhí)行完成后,順序執(zhí)行被調(diào)用代碼段中的指令,指令獲取操作都是才艮據(jù)代碼段的段標(biāo)識和程序地址以及步驟302記錄的對應(yīng)關(guān)系實現(xiàn)的,具體與步驟309相同。當(dāng)執(zhí)行到調(diào)用返回的指令時,執(zhí)行以下步驟310。步驟310:當(dāng)調(diào)用返回時,根據(jù)步驟307記錄的調(diào)用前代碼段標(biāo)識和程序地址,返回調(diào)用前的執(zhí)行位置,繼續(xù)執(zhí)行后續(xù)指令,返回步驟304。本步驟中,調(diào)用返回時,將步驟307中入棧的數(shù)據(jù)出棧,得到調(diào)用前所執(zhí)行指令的代碼段標(biāo)識和程序地址,將得到的代碼段標(biāo)識賦值給代碼段跟蹤變量,將程序地址賦值給程序計數(shù)器。將程序計數(shù)器的值加上預(yù)設(shè)的指令長度,作為當(dāng)前待執(zhí)行指令的程序地址,然后返回執(zhí)行步驟304,從而實現(xiàn)在執(zhí)行完被調(diào)用代碼后的返回操作。至此,本流程結(jié)束。以上實施例中,在系統(tǒng)啟動時,將所有待加載指令文件加載為代碼段,并記錄對應(yīng)關(guān)系。在實際中,可以不在啟動時對所有待加載指令文件進行加載,而是在虛擬硬件系統(tǒng)啟動時,將指令文件的當(dāng)前主文件加載為代碼段,記錄得到的代碼段的標(biāo)識及其物理起始地址之間的對應(yīng)關(guān)系;指令文件執(zhí)行過程中,當(dāng)系統(tǒng)的當(dāng)前執(zhí)行指令為加載指令時,將加載指令指示的指令文件加載為代碼段并記錄得到的代碼段的標(biāo)識及其物理起始地址之間的對應(yīng)關(guān)系。以上實施例給出了通過記錄代碼段的段標(biāo)識和代碼段起始物理地址的對應(yīng)關(guān)系方式來查找待執(zhí)行指令的物理地址。在實際中,還可以采用其它方式查找待執(zhí)行指令的物理地址。其原則是,只要能夠確定出待執(zhí)行指令所在代碼段或所在指令文件,然后根據(jù)所記錄的代碼段或指令文件物理地址就可以查找到待執(zhí)行指令的物理地址。為了實現(xiàn)上述指令文件執(zhí)行方法,本發(fā)明提供了一種虛擬硬件系統(tǒng)。圖4示出了本發(fā)明實施例中虛擬硬件系統(tǒng)的結(jié)構(gòu)示意圖,如圖4所示,本發(fā)明的虛擬硬件系統(tǒng)包括文件子系統(tǒng)和虛擬機子系統(tǒng)。其中,文件子系統(tǒng),用于保存指令文件;對于每個指令文件,指令的讀取地址表示為該指令在指令文件中的程序地址。虛擬機子系統(tǒng),用于在同一進程中,加載文件子系統(tǒng)保存的多個指令文件,在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。本發(fā)明還提供了一種虛擬機,即圖4中的虛擬機子系統(tǒng),該虛擬機子系統(tǒng)具體包括加載單元和執(zhí)行單元。其中,加載單元,用于在同一進程中,加載多個指令文件。該加載單元具體包括加載模塊和發(fā)送模塊(加載模塊和發(fā)送模塊在圖4中未示出),加載模塊將文件子系統(tǒng)中的多個指令文件分別加載為代碼段,在加載過程中得到代碼段和該代碼段物理起始地址之間的對應(yīng)關(guān)系,該對應(yīng)關(guān)系由發(fā)送模塊發(fā)送到執(zhí)行單元。該加載單元在啟動時,對指令文件執(zhí)行加載和發(fā)送操作;如果接收到指令處理模塊的加載命令,對加載命令指示的指令文件執(zhí)行所述加載和發(fā)送操作。虛擬機子系統(tǒng)中的執(zhí)行單元,用于在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。該執(zhí)行單元具體包括映射關(guān)系存儲模塊和指令處理模塊;其中,映射關(guān)系存儲模塊,用于存儲接收自加載單元的對應(yīng)關(guān)系,并提供給指令處理模塊。該映射關(guān)系存儲模塊可以采用表格形式存儲映射關(guān)系,將映射關(guān)系存儲在表1示出的地址映射表中。指令處理模塊,用于確定待執(zhí)行指令所在代碼段和待執(zhí)行指令的程序地址,從映射關(guān)系存儲模塊保存的對應(yīng)關(guān)系中查找所在代碼段的物理起始地址,將查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令。進行跨代碼段指令調(diào)用時,指令處理模塊保存當(dāng)前執(zhí)行指令所在代碼段的標(biāo)識和程序地址,用以維護調(diào)用前的指令執(zhí)行位置;然后執(zhí)行被調(diào)用代碼段中的被調(diào)用指令;調(diào)用返回時,返回調(diào)用前保存的代碼段標(biāo)識和程序地址指示的物理地址,繼續(xù)執(zhí)行后續(xù)指令,從而實現(xiàn)調(diào)用返回。具體來說,指令處理模塊包括處理子模塊、段維護子模塊和程序計數(shù)器。其中,處理子模塊在系統(tǒng)啟動且加載單元加載完畢后,開始從代碼段l執(zhí)行指令,此時,處理子模塊將程序計數(shù)器清零,將段維護子模塊記錄的代碼段標(biāo)識設(shè)置為代碼段1的代碼段標(biāo)識,例如Sl或1,該代碼段1為最先被加載的代碼段。在執(zhí)行指令時,處理子模塊從段維護子模塊獲取當(dāng)前代碼段標(biāo)識,從程序計數(shù)器獲取當(dāng)前程序地址,從映射關(guān)系存儲模塊的對應(yīng)關(guān)系中獲取當(dāng)前代碼段的物理起始地址,將獲取的物理起始地址與所述當(dāng)前程序地址相加,從相加結(jié)果指示的物理地址上讀取待執(zhí)行指令并執(zhí)行。在當(dāng)前指令執(zhí)行完畢時,處理子模塊將程序計數(shù)器的值更新為下一個待執(zhí)行指令的程序地址。如果沒有跨代碼段的指令調(diào)用,則段維護子^t塊中的代碼段標(biāo)識不會改變。然后,重復(fù)根據(jù)當(dāng)前代碼段標(biāo)識、程序計數(shù)器的值以及對應(yīng)關(guān)系,計算下一個待執(zhí)行指令的物理地址并讀取^M亍的才喿作,如此循環(huán)。在出現(xiàn)跨代碼段指令調(diào)用時,處理子模塊將段維護子模塊維護的當(dāng)前代碼段標(biāo)識和程序計數(shù)器的當(dāng)前值記錄下來,作為調(diào)用前的位置信息。具體來說,處理子模塊向段維護子模塊發(fā)送調(diào)用通知,該調(diào)用通知攜帶待調(diào)用指令的所在代碼段標(biāo)識,以通知段維護子模塊切換當(dāng)前代碼段標(biāo)識的值;同時,處理子模塊還通過將程序計數(shù)器的當(dāng)前值在處理子模塊中入棧的方式,以實現(xiàn)切換前程序地址的保存。保存完成后,處理子模塊將待調(diào)用指令的程序地址賦值給程序計數(shù)器,然后執(zhí)行#4居段維護子模塊中的當(dāng)前代碼段標(biāo)識、程序計數(shù)器中的程序地址以及映射關(guān)系存儲模塊中的對應(yīng)關(guān)系計算待調(diào)用指令的物理地址并獲取執(zhí)行的操作。在當(dāng)前執(zhí)行指令顯示調(diào)用返回時,處理子模塊向段維護子模塊發(fā)送調(diào)用返回通知,以通知段維護子模塊將當(dāng)前代碼段標(biāo)識切換為調(diào)用前代碼段標(biāo)識;同時處理子模塊還將調(diào)用前程序地址出棧并賦值給程序計數(shù)器,然后執(zhí)行根據(jù)段維護子模塊中的當(dāng)前代碼段標(biāo)識、程序地址以及映射關(guān)系計算待執(zhí)行指令的物理地址并獲取執(zhí)行的操作。在實際中,處理子模塊還在當(dāng)前執(zhí)行指令為加載指令時,向加載單元發(fā)送加載命令,該加載命令中包括待加載指令文件信息。以上就是處理子模塊的功能。指令處理模塊的段維護子模塊,用于維護當(dāng)前程序所處的代碼段標(biāo)識,并提供給處理子模塊;在進行跨代碼段指令調(diào)用時,維護調(diào)用關(guān)系,即在調(diào)用之前,記錄調(diào)用前代碼段的標(biāo)識,在返回時,恢復(fù)調(diào)用前代碼—險標(biāo)識。具體來說,段維護子模塊提供代碼段跟蹤變量,用于記錄當(dāng)前代碼段標(biāo)識,該代碼段跟蹤變量的值即為提供給處理子模塊的當(dāng)前代碼段信息。在系統(tǒng)啟動時,段維護子模塊將代碼段跟蹤變量設(shè)置為Sl,并在處理子模塊需要時,提供給處理子模塊;在接收來自處理子模塊的調(diào)用通知時,段維護子模塊將當(dāng)前代碼段標(biāo)識保存,將調(diào)用通知中的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識。實現(xiàn)時,可以采用入棧處理將當(dāng)前代碼段標(biāo)識壓入棧頂;然后段維護子模塊將調(diào)用通知中的代碼段標(biāo)識賦值給代碼段跟蹤變量。在接收來自處理子模塊的調(diào)用返回通知時,段維護子模塊將調(diào)用前保存的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識。具體是通過出棧處理將棧頂標(biāo)識彈出,賦值給代碼段跟蹤變量。為了適應(yīng)各種加載情況,加載單元中的發(fā)送模塊進一步將加載時獲得的各代碼段與該代碼段程序起始地址之間的對應(yīng)關(guān)系發(fā)送給執(zhí)行單元。執(zhí)行單元中的指令處理模塊,進一步在計算待執(zhí)行指令物理地址時,查找待執(zhí)行指令所在代碼段的程序起始地址,并將待執(zhí)行指令所在代碼段的物理起始地址減去該待執(zhí)行指令所在代碼段的程序起始地址,再與所述待執(zhí)行指令的程序地址相加,得到待執(zhí)行指令的物理地址。由以上所述可以看出,本發(fā)明所提供的虛擬硬件系統(tǒng)及其指令文件執(zhí)行方法能夠?qū)崿F(xiàn)虛擬硬件系統(tǒng)中多個指令文件的加載和執(zhí)行,而且不會出現(xiàn)重定位問題。綜上所述,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種虛擬硬件系統(tǒng)中的指令執(zhí)行方法,其特征在于,該方法包括在同一進程中加載多個指令文件;在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。2、如權(quán)利要求l所述的方法,其特征在于,所述在同一進程中加載多個指令文件為在同一進程中,將多個指令文件分別加載為代碼段,記錄各代碼段和代碼段物理起始地址之間的對應(yīng)關(guān)系;所述確定待執(zhí)行指令所在指令文件為確定待執(zhí)行指令所在代碼段,從所述對應(yīng)關(guān)系中查找所在代碼_纟殳的物理起始地址;所述從所確定的指令文件中讀取所述程序地址上的指令為將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令。3、如權(quán)利要求2所述的方法,其特征在于,所述確定待執(zhí)行指令所在代碼段為在代碼段內(nèi)執(zhí)行指令時,將當(dāng)前執(zhí)行的代碼段確定為待執(zhí)行指令所在代碼段;在跨代碼段指令調(diào)用時,將被調(diào)用指令所在代碼段確定為待執(zhí)行指令所在代碼段。4、如權(quán)利要求2所述的方法,其特征在于,所述將多個指令文件分別加載為代碼段包括a、將指令文件中的主文件加載為代碼段;b、根據(jù)主文件中所需調(diào)用指令文件信息,依次將與主文件中的所需調(diào)用指令文件信息對應(yīng)的副文件分別加載為代碼段;c、遍歷每個已加載的副文件,根據(jù)已加載副文件中的所需調(diào)用指令文件信息,依次將與已加載副文件中的所需調(diào)用指令文件信息對應(yīng)的副文件加載為代碼段。5、如權(quán)利要求2所述的方法,其特征在于,所述將多個指令文件分別加載為代碼段,記錄各代碼段和代碼段物理起始地址之間的對應(yīng)關(guān)系為在所述系統(tǒng)啟動時,將指令文件中的主文件加載為代碼段,記錄得到的代碼段及其物理起始地址之間的對應(yīng)關(guān)系;在系統(tǒng)的當(dāng)前執(zhí)行指令為加載指令時,將加載指令指示的指令文件加載為代碼段,記錄得到的代碼段及其物理起始地址之間的對應(yīng)關(guān)系。6、如權(quán)利要求2至5任意一項所述的方法,其特征在于,所述加載為將一個指令文件加載為一個代碼段;或者,將一個指令文件加載為多個代碼,爻。7、如權(quán)利要求2所述的方法,其特征在于,該方法進一步包括判斷出跨代碼段指令調(diào)用時,記錄當(dāng)前執(zhí)行指令的程序地址和所在代碼段,執(zhí)行被調(diào)用代碼段中的被調(diào)用指令;調(diào)用返回時,返回調(diào)用前記錄的程序地址和代碼^爻指示的物理地址,繼續(xù)執(zhí)行后續(xù)指令。8、如權(quán)利要求7所述的方法,其特征在于,所述記錄當(dāng)前執(zhí)行指令的程序地址和所在代碼段為將當(dāng)前執(zhí)行指令所在代碼段信息和當(dāng)前執(zhí)行指令的程序地址入棧;所述執(zhí)行被調(diào)用代碼段中的被調(diào)用指令為將被調(diào)用指令的程序地址和所在代碼段確定為當(dāng)前待執(zhí)行指令的程序地址和所在代碼段,從所述對應(yīng)關(guān)系中查找該所在代碼段的物理起始地址;將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取被調(diào)用指令;所述返回調(diào)用前記錄的,呈序地址和代碼段指示的物理地址為將調(diào)用前保存的當(dāng)前執(zhí)行指令的程序地址和代碼段信息出棧。9、如權(quán)利要求2或8所述的方法,其特征在于,所述對應(yīng)關(guān)系進一步包括各代碼段和代碼段程序起始地址之間的對應(yīng)關(guān)系;所述從所述對應(yīng)關(guān)系中查找所在代碼段的物理起始地址的步驟進一步包括查找所述所在代碼段的程序起始地址;所述將所查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加的步驟進一步包括將所查找到的物理起始地址減去查找到的程序起始地址后,與所述待執(zhí)行指令的程序地址相加。10、如權(quán)利要求7所述的方法,其特征在于,所述跨代碼段指令調(diào)用是根據(jù)當(dāng)前執(zhí)行指令的類型判斷的;在當(dāng)前執(zhí)行指令的類型為預(yù)先設(shè)置的調(diào)用函數(shù)時,判定為跨代碼段指令調(diào)用;或者,在當(dāng)前執(zhí)行指令調(diào)用預(yù)先設(shè)置的特定地址時,判定為跨代碼段指令調(diào)用。11、一種虛擬石更件系統(tǒng),其特4正在于,該系統(tǒng)包4舌文件子系統(tǒng)和虛擬機子系統(tǒng);所述文件子系統(tǒng),用于保存指令文件;所述虛擬機子系統(tǒng),用于在同一進程中,加載多個指令文件,在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。12、一種虛擬機,其特征在于,該虛擬機包括加載單元和執(zhí)行單元;所述加載單元,用于在同一進程中,加載多個指令文件;所述執(zhí)行單元,用于在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。13、如權(quán)利要求12所述的虛擬機,其特征在于,所述加載單元包括加載模塊和發(fā)送模塊;所述加載模塊,用于在同一進程中,將多個指令文件分別加載為代碼,艮;所述發(fā)送模塊,用于將所述加載過程中得到的代碼段和該代碼段物理起始地址之間的對應(yīng)關(guān)系發(fā)送給所述執(zhí)行單元;所述執(zhí)行單元包括映射關(guān)系存儲模塊和指令處理模塊;所述映射關(guān)系存儲^t塊,用于存儲接收到的對應(yīng)關(guān)系;所述指令處理模塊,確定待執(zhí)行指令所在代碼段和待執(zhí)行指令的程序地址,從映射關(guān)系存儲模塊保存的對應(yīng)關(guān)系中查找所在代碼段的物理起始地址,將查找到的物理起始地址與所述待執(zhí)行指令的程序地址相加,從相加結(jié)果指示的物理地址上讀取指令。14、如權(quán)利要求13所述的虛擬機,其特征在于,所述映射關(guān)系存儲模塊保關(guān)系;所述指令處理模塊包括處理子模塊、段維護子模塊和程序計數(shù)器;所述處理子模塊,用于從段維護子模塊獲取當(dāng)前代碼段標(biāo)識,從程序計數(shù)器獲取程序地址,從映射關(guān)系存儲模塊的對應(yīng)關(guān)系中查找與所獲取的代碼段標(biāo)識對應(yīng)的物理起始地址,將所述對應(yīng)的物理起始地址與從程序計數(shù)器獲取的程序地址相加,從相加結(jié)果指示的物理地址上讀取待執(zhí)行指令并執(zhí)行;當(dāng)前指令執(zhí)行完畢時,將程序計數(shù)器的值更新為下一個待執(zhí)行指令的程序地址;所述段維護子模塊,用于記錄當(dāng)前運行程序所在代碼段標(biāo)識;所述程序計數(shù)器,用于記錄當(dāng)前運行程序的程序地址。15、如權(quán)利要求14所述的虛擬機,其特征在于,所述處理子模塊進一步用于,在跨代碼段指令調(diào)用時,向所述段維護子模塊發(fā)送攜帶待調(diào)用指令所在代碼段標(biāo)識的調(diào)用通知,并保存當(dāng)前程序計數(shù)器的值;在調(diào)用返回時,向所述段維護子模塊發(fā)送調(diào)用返回通知,將調(diào)用前保存的程序計數(shù)器的值賦值給程序計數(shù)器;所述段維護子模塊,進一步用于在接收到所述調(diào)用通知時,將當(dāng)前代碼段標(biāo)識保存,將調(diào)用通知中的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識;在接收到調(diào)用返回通知時,將調(diào)用前保存的代碼段標(biāo)識確定為提供給處理子模塊的當(dāng)前代碼段標(biāo)識。全文摘要本發(fā)明公開了一種虛擬硬件系統(tǒng)中的指令執(zhí)行方法,該方法包括在同一進程中加載多個指令文件;在執(zhí)行指令時,確定待執(zhí)行指令所在指令文件以及在指令文件中的程序地址,從所確定的指令文件中讀取所述程序地址上的指令并執(zhí)行。本發(fā)明還公開了一種虛擬硬件系統(tǒng)和一種虛擬機。使用本發(fā)明能夠?qū)崿F(xiàn)虛擬硬件系統(tǒng)中多個指令文件的加載和執(zhí)行,省略了為指令文件分配互不相同程序地址的步驟,不會產(chǎn)生因程序地址沖突而需要重定位的情況。文檔編號G06F9/46GK101236489SQ200810100920公開日2008年8月6日申請日期2008年2月26日優(yōu)先權(quán)日2008年2月26日發(fā)明者孫吉平,勇韓申請人:北京深思洛克數(shù)據(jù)保護中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
岗巴县| 阳东县| 平和县| 凌云县| 灵石县| 张北县| 丹江口市| 黑龙江省| 郴州市| 长顺县| 浪卡子县| 棋牌| 绍兴市| 绥滨县| 岳普湖县| 张家口市| 肥乡县| 太白县| 民权县| 福安市| 皋兰县| 濮阳县| 泾阳县| 类乌齐县| 胶南市| 长沙县| 抚顺市| 仪征市| 孟连| 舒城县| 获嘉县| 遂川县| 邵阳市| 阜阳市| 都昌县| 广元市| 华阴市| 辛集市| 杨浦区| 孝义市| 孝义市|