[發(fā)明專利]分析解釋例程的虛擬指令方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 202011114571.X | 申請(qǐng)日: | 2020-10-16 |
| 公開(公告)號(hào): | CN112199163B | 公開(公告)日: | 2021-12-28 |
| 發(fā)明(設(shè)計(jì))人: | 樂(lè)德廣 | 申請(qǐng)(專利權(quán))人: | 常熟理工學(xué)院 |
| 主分類號(hào): | G06F9/455 | 分類號(hào): | G06F9/455;G06F21/56 |
| 代理公司: | 常州佰業(yè)騰飛專利代理事務(wù)所(普通合伙) 32231 | 代理人: | 滕詣迪 |
| 地址: | 215500 江*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分析 解釋 例程 虛擬 指令 方法 裝置 設(shè)備 存儲(chǔ) 介質(zhì) | ||
1.一種分析解釋例程的虛擬指令方法,其特征在于,包括:
將虛擬機(jī)保護(hù)的虛擬指令集進(jìn)行簡(jiǎn)化和歸類;
簡(jiǎn)化和歸類后分別形成為虛擬加載和存儲(chǔ)指令、虛擬運(yùn)算指令、虛擬退棧指令和虛擬空指令;
所述虛擬加載和存儲(chǔ)指令涉及到一個(gè)變量或常量在局部變量表和操作數(shù)棧之間的傳遞;
所述虛擬運(yùn)算指令的語(yǔ)義特征是它會(huì)去讀操作數(shù)棧而不改變操作數(shù)棧頂;
所述虛擬退棧指令用于直接控制操作數(shù)棧,它會(huì)將變量從操作數(shù)棧出棧從而改變操作數(shù)棧頂值,且對(duì)局部變量表沒(méi)有讀寫操作;
所述虛擬空指令vm_nop,其當(dāng)操作數(shù)棧棧頂變化值為0、操作數(shù)棧讀寫次數(shù)為0且局部變量表讀次數(shù)為0時(shí),判定此解釋例程沒(méi)有執(zhí)行任何操作;
所述簡(jiǎn)化和歸類的方法,包括:以操作數(shù)棧棧頂?shù)淖兓禐橹髋袛嘁罁?jù),然后在其內(nèi)部再進(jìn)一步判斷其他條件,從而判定該解釋例程對(duì)應(yīng)的指令類別;
所述以操作數(shù)棧棧頂?shù)淖兓禐橹髋袛嘁罁?jù),然后在其內(nèi)部再進(jìn)一步判斷其他條件,從而判定該解釋例程對(duì)應(yīng)的指令類別的方法,包括:
遍歷所有的解釋例程集合,判斷操作數(shù)棧變化范圍;
如果操作數(shù)棧變化范圍小于0,則進(jìn)一步判斷局部變量表的讀次數(shù),如果大于0,則是Tload指令,表示將一個(gè)本地變量加載到操作數(shù)棧中;等于0則是Tconst指令,表示將一個(gè)常量加載到操作數(shù)棧中;
操作數(shù)棧變化值如果等于0,則進(jìn)一步判斷操作數(shù)棧的讀次數(shù),如果大于0,則是Tmath指令,表示一種算數(shù)運(yùn)算指令;如果等于0則是Tnop指令,表示空操作;
如果操作數(shù)棧變化值大于0,則進(jìn)一步判斷局部變量表的讀次數(shù),如果大于0,則是Tstore指令,表示將一個(gè)數(shù)值從操作數(shù)棧存儲(chǔ)到局部變量表中;等于0則是Tpop指令,表示把變量從操作數(shù)棧彈出。
2.根據(jù)權(quán)利要求1所述的分析解釋例程的虛擬指令方法,其特征在于,所述虛擬運(yùn)算指令讀操作數(shù)棧的次數(shù)是和根據(jù)算術(shù)符需要讀操作數(shù)的個(gè)數(shù)一致的。
3.一種分析解釋例程的虛擬指令裝置,其特征在于,包括:
簡(jiǎn)化和歸類模塊,用于將虛擬機(jī)保護(hù)的虛擬指令集進(jìn)行簡(jiǎn)化和歸類;
形成模塊,用于簡(jiǎn)化和歸類后分別形成為虛擬加載和存儲(chǔ)指令、虛擬運(yùn)算指令、虛擬退棧指令和虛擬空指令;
所述虛擬加載和存儲(chǔ)指令涉及到一個(gè)變量或常量在局部變量表和操作數(shù)棧之間的傳遞;
所述虛擬運(yùn)算指令的語(yǔ)義特征是它會(huì)去讀操作數(shù)棧而不改變操作數(shù)棧頂;
所述虛擬退棧指令用于直接控制操作數(shù)棧,它會(huì)將變量從操作數(shù)棧出棧從而改變操作數(shù)棧頂值,且對(duì)局部變量表沒(méi)有讀寫操作;
所述虛擬空指令vm_nop,其當(dāng)操作數(shù)棧棧頂變化值為0、操作數(shù)棧讀寫次數(shù)為0且局部變量表讀次數(shù)為0時(shí),判定此解釋例程沒(méi)有執(zhí)行任何操作;
所述簡(jiǎn)化和歸類的方法,包括:以操作數(shù)棧棧頂?shù)淖兓禐橹髋袛嘁罁?jù),然后在其內(nèi)部再進(jìn)一步判斷其他條件,從而判定該解釋例程對(duì)應(yīng)的指令類別;
所述以操作數(shù)棧棧頂?shù)淖兓禐橹髋袛嘁罁?jù),然后在其內(nèi)部再進(jìn)一步判斷其他條件,從而判定該解釋例程對(duì)應(yīng)的指令類別的方法,包括:
遍歷所有的解釋例程集合,判斷操作數(shù)棧變化范圍;
如果操作數(shù)棧變化范圍小于0,則進(jìn)一步判斷局部變量表的讀次數(shù),如果大于0,則是Tload指令,表示將一個(gè)本地變量加載到操作數(shù)棧中;等于0則是Tconst指令,表示將一個(gè)常量加載到操作數(shù)棧中;
操作數(shù)棧變化值如果等于0,則進(jìn)一步判斷操作數(shù)棧的讀次數(shù),如果大于0,則是Tmath指令,表示一種算數(shù)運(yùn)算指令;如果等于0則是Tnop指令,表示空操作;
如果操作數(shù)棧變化值大于0,則進(jìn)一步判斷局部變量表的讀次數(shù),如果大于0,則是Tstore指令,表示將一個(gè)數(shù)值從操作數(shù)棧存儲(chǔ)到局部變量表中;等于0則是Tpop指令,表示把變量從操作數(shù)棧彈出。
4.一種分析解釋例程的虛擬指令設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)權(quán)利要求1~2中任意一項(xiàng)所述分析解釋例程的虛擬指令方法。
5.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行權(quán)利要求1~2中任意一項(xiàng)所述分析解釋例程的虛擬指令方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于常熟理工學(xué)院,未經(jīng)常熟理工學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011114571.X/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 教學(xué)方法及系統(tǒng)
- 具有可替換函數(shù)庫(kù)的軟件程序
- 操作醫(yī)學(xué)裝置的方法
- 模塊間內(nèi)聯(lián)候選標(biāo)識(shí)
- 通過(guò)不可見(jiàn)接口實(shí)現(xiàn)不符合ABI特征的方法和系統(tǒng)
- 改進(jìn)圖形處理單元上的鏈?zhǔn)饺蝿?wù)的性能的方法和裝置
- 基于多SIM的設(shè)備自動(dòng)配置系統(tǒng)和方法
- 用于暫停和恢復(fù)虛擬助理的系統(tǒng)、方法以及裝置
- 一種開發(fā)板例程演示方法、裝置、開發(fā)板及存儲(chǔ)介質(zhì)
- 軟件程序的執(zhí)行方法及實(shí)施該方法的電路裝置
- 確定吸收制品功效
- 一種虛擬機(jī)的安全訪問(wèn)方法及虛擬機(jī)系統(tǒng)
- 一種虛擬桌面的解鎖方法及裝置
- 一種實(shí)時(shí)處理虛擬交換機(jī)網(wǎng)絡(luò)流量的虛擬化平臺(tái)
- 虛擬智能家居實(shí)訓(xùn)系統(tǒng)及其虛擬實(shí)訓(xùn)方法
- 虛擬機(jī)的磁盤資源的管理方法和裝置
- 一種基于KVM的虛擬網(wǎng)卡管理方法
- 虛擬資源數(shù)據(jù)處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 基于虛擬環(huán)境的道具使用方法、裝置、設(shè)備及介質(zhì)
- 虛擬道具的獲取方法、裝置、設(shè)備及介質(zhì)





