[發(fā)明專利]在動態(tài)二進制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法和裝置在審
| 申請?zhí)枺?/td> | 201611209017.3 | 申請日: | 2016-12-23 |
| 公開(公告)號: | CN106873944A | 公開(公告)日: | 2017-06-20 |
| 發(fā)明(設(shè)計)人: | 程旭;賈寧;楊春 | 申請(專利權(quán))人: | 北京北大眾志微系統(tǒng)科技有限責(zé)任公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/32 |
| 代理公司: | 北京安信方達知識產(chǎn)權(quán)代理有限公司11262 | 代理人: | 李紅爽,栗若木 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 動態(tài) 二進制 翻譯 系統(tǒng) 處理 間接 轉(zhuǎn)移 指令 方法 裝置 | ||
1.一種在動態(tài)二進制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法,其特征在于,包括:
保存用于在動態(tài)二進制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的重定向表;
當(dāng)接收到間接轉(zhuǎn)移指令時,根據(jù)間接轉(zhuǎn)移指令中的源地址在所保存的重定向表中查找該源地址對應(yīng)的表項;所述重定向表以源地址為索引建立;
如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息;
如果查找到的表項中包含重定向信息,則執(zhí)行所述重定向信息,將程序控制流重定向至相應(yīng)的目標(biāo)地址處。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:
所述重定向表復(fù)用源二進制代碼空間存儲,或單獨存儲在一塊與源二進制代碼空間具有一個固定偏移量的影子空間中;
所述在重定向表中查找該源地址對應(yīng)的表項的步驟包括:
若重定向表存儲在源二進制代碼空間中,則直接查找所述源地址所代表的存儲位置中的表項;
若重定向表存儲在影子空間中,則在所述影子空間中,查找所述源地址加上所述的固定偏移量的結(jié)果所代表的存儲位置中的表項。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于:
如果所述動態(tài)二進制翻譯系統(tǒng)的源平臺是變長指令系統(tǒng)平臺,則所述重定向表中的表項為鏈?zhǔn)奖眄棧鲋囟ㄏ蛐畔槎烫D(zhuǎn)指令;
如果所述動態(tài)二進制翻譯系統(tǒng)的源平臺是定長指令系統(tǒng)平臺,則所述重定向信息包括源地址相對應(yīng)的目標(biāo)地址。
4.根據(jù)權(quán)利要求1~3中任一項所述的方法,其特征在于,還包括:
當(dāng)所述動態(tài)二進制翻譯系統(tǒng)啟動后,將源二進制代碼空間或影子空間的頁面標(biāo)記為不可運行;當(dāng)在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;
所述如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息的步驟包括:
當(dāng)頁面中不包含表項且空白表項被執(zhí)行時,觸發(fā)頁面權(quán)限異常,調(diào)用頁面異常處理函數(shù)在表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息;
當(dāng)頁面已包含一個表項且空白表項被執(zhí)行時,觸發(fā)軟件中斷異常,調(diào)用軟件中斷異常處理函數(shù)在表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息。
5.一種在動態(tài)二進制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的裝置,其特征在于,包括:
存儲單元,用于保存用于在動態(tài)二進制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的重定向表;
查找單元,用于當(dāng)接收到間接轉(zhuǎn)移指令時,根據(jù)間接轉(zhuǎn)移指令中的源地址在所述存儲單元所保存的重定向表中查找該源地址對應(yīng)的表項;所述重定向表以源地址為索引建立;
寫入單元,用于當(dāng)查找到的表項為空時,在該表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息;
執(zhí)行單元,用于當(dāng)查找到的表項中包含重定向信息時,執(zhí)行所述重定向信息,將程序控制流重定向至相應(yīng)的目標(biāo)地址處。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于:
所述存儲單元復(fù)用源二進制代碼空間保存所述重定向表,或?qū)⑺鲋囟ㄏ虮韱为毚鎯υ谝粔K與源二進制代碼空間具有一個固定偏移量的影子空間中;
所述查找單元在重定向表中查找該源地址對應(yīng)的表項是指:
若重定向表存儲在源二進制代碼空間中,所述查找單元直接查找所述源地址所代表的存儲位置中的表項;若重定向表存儲在影子空間中,所述查找單元在所述影子空間中查找所述源地址加上所述固定偏移量的結(jié)果所代表的存儲位置中的表項。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于:
如果所述動態(tài)二進制翻譯系統(tǒng)的源平臺是變長指令系統(tǒng)平臺,則所述重定向表中的表項為鏈?zhǔn)奖眄棧鲋囟ㄏ蛐畔槎烫D(zhuǎn)指令;
如果所述動態(tài)二進制翻譯系統(tǒng)的源平臺是定長指令系統(tǒng)平臺,則所述重定向信息包括源地址相對應(yīng)的目標(biāo)地址。
8.根據(jù)權(quán)利要求5~7中任一項所述的裝置,其特征在于,還包括:
按需構(gòu)造單元,用于當(dāng)所述動態(tài)二進制翻譯系統(tǒng)啟動后,將源二進制代碼空間或影子空間的頁面標(biāo)記為不可運行;當(dāng)在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;
所述寫入單元當(dāng)查找到的表項為空時,在該表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息是指:
所述寫入單元當(dāng)頁面中不包含表項且空白表項被執(zhí)行時,觸發(fā)頁面權(quán)限異常,調(diào)用頁面異常處理函數(shù)在表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息;當(dāng)頁面已包含一個表項且空白表項被執(zhí)行時,觸發(fā)軟件中斷異常,調(diào)用軟件中斷異常處理函數(shù)在表項中填入將程序控制流重定向至所述源地址對應(yīng)的目標(biāo)地址處的重定向信息。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京北大眾志微系統(tǒng)科技有限責(zé)任公司,未經(jīng)北京北大眾志微系統(tǒng)科技有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611209017.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





