[發明專利]函數調用和返回的處理方法、二進制翻譯方法和系統無效
| 申請號: | 200710094328.4 | 申請日: | 2007-11-28 |
| 公開(公告)號: | CN101452395A | 公開(公告)日: | 2009-06-10 |
| 發明(設計)人: | 唐大國;王麗一;漆鋒濱;文延華;卿鵬;孫俊 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京集佳知識產權代理有限公司 | 代理人: | 逯長明 |
| 地址: | 214083江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 函數 調用 返回 處理 方法 二進制 翻譯 系統 | ||
1.一種函數調用和返回的處理方法,其特征在于,包括:
將源程序的函數調用的返回地址作為假指令的指令代碼保存,所述假指 令為插入在目標程序的函數調用指令之后的指令;
在目標程序的函數調用開始,將所述假指令的地址保存到棧中;
在目標程序的函數調用結束,將棧頂保存的地址取出,在所述從棧頂取 出的地址的值等于所述源程序的函數調用的返回地址時,跳轉到所述假指令 后,其中,在第一次跳轉到所述假指令后,跳轉到直接跳轉指令控制中心, 所述直接跳轉指令控制中心用于將跳轉到直接跳轉指令控制中心的指令修改 為跳轉到目標程序的函數調用的返回地址的指令,以在以后各次跳轉到所述 假指令后,跳轉到目標程序的函數調用的返回地址。
2.根據權利要求1所述的函數調用和返回的處理方法,其特征在于,在所 述從棧頂取出的地址的值等于所述源程序的函數調用的返回地址時,跳轉到 所述假指令后包括:
將所述從棧頂取出的地址的值載入;
將所述從棧頂取出的地址的值與所述源程序的函數調用的返回地址進行 比較;
若比較結果為不相等則跳轉到間接跳轉指令控制中心,由所述間接跳轉 指令控制中心幫助跳轉到目標程序的函數調用的返回地址;
若比較結果為相等則跳轉到所述假指令后。
3.一種函數調用和返回的處理方法,其特征在于,包括:將源程序翻譯成 目標程序的二進制翻譯步驟和執行所述目標程序的步驟,所述二進制翻譯步 驟包括:
將源程序的函數調用指令翻譯成對應的目標程序的函數調用指令;
將源程序的函數調用的返回地址作為假指令插入在所述目標程序的函數 調用指令之后,并在所述假指令后,插入跳轉到直接跳轉指令控制中心的指 令,所述直接跳轉指令控制中心用于將跳轉到直接跳轉指令控制中心的指令 修改為跳轉到目標程序的函數調用的返回地址的指令;
在目標程序的函數調用開始,插入將所述假指令的地址保存到棧中的指 令;
在目標程序的函數調用結束,插入將棧頂保存的地址取出的指令、判斷 所述從棧頂取出的地址的值是否等于所述源程序的函數調用的返回地址的指 令、和在所述從棧頂取出的地址的值等于所述源程序的函數調用的返回地址 時跳轉到所述假指令后的指令。
4.根據權利要求3所述的函數調用和返回的處理方法,其特征在于,所述 執行所述目標程序的步驟包括:在第一次執行所述直接跳轉指令控制中心的 指令時,將所述跳轉到直接跳轉指令控制中心的指令修改為跳轉到目標程序 的函數調用的返回地址的指令。
5.根據權利要求3所述的函數調用和返回的處理方法,其特征在于,所述 插入判斷所述從棧頂取出的地址的值是否等于所述源程序的函數調用的返回 地址的指令包括:
插入將所述從棧頂取出的地址的值載入的指令;
插入將所述從棧頂取出的地址的值與所述源程序的函數調用的返回地址 進行比較的指令;
插入在所述從棧頂取出的地址的值與所述源程序的函數調用的返回地址 不相等時跳轉到間接跳轉指令控制中心的指令,以在所述從棧頂取出的地址 的值與所述源程序的函數調用的返回地址不相等時,由所述間接跳轉指令控 制中心幫助跳轉到目標程序的函數調用的返回地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710094328.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:粗、細纖維混紡紗
- 下一篇:瓦楞紙箱的二次壓痕裝置





