[發(fā)明專利]機(jī)器代碼生成方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202011000226.3 | 申請(qǐng)日: | 2020-09-21 |
| 公開(公告)號(hào): | CN112148370A | 公開(公告)日: | 2020-12-29 |
| 發(fā)明(設(shè)計(jì))人: | 羅繼明;萬磊;李毅;錢進(jìn) | 申請(qǐng)(專利權(quán))人: | 深圳前海微眾銀行股份有限公司 |
| 主分類號(hào): | G06F9/30 | 分類號(hào): | G06F9/30;G06F8/41 |
| 代理公司: | 深圳市世紀(jì)恒程知識(shí)產(chǎn)權(quán)代理事務(wù)所 44287 | 代理人: | 張志江 |
| 地址: | 518000 廣東省深圳市前海深港合作區(qū)前*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 機(jī)器 代碼 生成 方法 裝置 設(shè)備 計(jì)算機(jī) 可讀 存儲(chǔ) 介質(zhì) | ||
本發(fā)明公開了一種機(jī)器代碼生成方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該方法包括:逐行掃描匯編源碼文件,獲取當(dāng)前行指令的機(jī)器指令節(jié)點(diǎn)信息和指令標(biāo)號(hào)位置信息;將機(jī)器指令節(jié)點(diǎn)信息記錄至新建的指令表,并將指令標(biāo)號(hào)位置信息中的指令標(biāo)號(hào)名記錄至新建的指令標(biāo)號(hào)表;將分支跳轉(zhuǎn)指令的指令標(biāo)號(hào)名記錄至新建的回填表,并在掃描至匯編源碼文件的文件尾時(shí)將獲取到相同的指令標(biāo)號(hào)名時(shí)回填對(duì)應(yīng)的指令地址;基于指令表和/或回填表映射生成機(jī)器代碼。如此,根據(jù)匯編源碼文件動(dòng)態(tài)生成包括指令表、指令標(biāo)號(hào)表以及對(duì)應(yīng)于分支跳轉(zhuǎn)指令的回填表的動(dòng)態(tài)鏈表,由此提高了分析表的靈活性,并提高分支跳轉(zhuǎn)指令編譯的效率。
技術(shù)領(lǐng)域
本發(fā)明涉及金融科技(Fintech)的計(jì)算機(jī)匯編編譯技術(shù)領(lǐng)域,尤其涉及一種機(jī)器代碼生成方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,越來越多的技術(shù)應(yīng)用在金融領(lǐng)域,傳統(tǒng)金融業(yè)正在逐步向金融科技(Fintech)轉(zhuǎn)變,但由于金融行業(yè)的安全性、實(shí)時(shí)性要求,也對(duì)技術(shù)提出了更高的要求。
目前,針對(duì)匯編源碼到機(jī)器代碼的生成過程中,一般采用語法制導(dǎo),讀取詞法分析器輸入的詞法規(guī)則,構(gòu)建系統(tǒng)分析表,在翻譯分支跳轉(zhuǎn)指令時(shí),需要獲知跳轉(zhuǎn)指令的目的地址,當(dāng)前采用直接查找詞法、詞法分析階段構(gòu)建的靜態(tài)二維數(shù)組形式的分析表獲取分支跳轉(zhuǎn)指令的目的地址,在翻譯時(shí)將分支跳轉(zhuǎn)指令的目的地址填充到機(jī)器代碼中。
但是靜態(tài)二維數(shù)組形式的分析表在構(gòu)建完成后存在無法動(dòng)態(tài)調(diào)整、不易擴(kuò)展、內(nèi)存空間利用不充分的問題。
發(fā)明內(nèi)容
本發(fā)明提供一種機(jī)器代碼生成方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),旨在實(shí)現(xiàn)提高分析表的靈活性,并提高分支跳轉(zhuǎn)指令編譯的效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種機(jī)器代碼生成方法,所述方法包括:
逐行掃描匯編源碼文件,獲取當(dāng)前行指令的機(jī)器指令節(jié)點(diǎn)信息和指令標(biāo)號(hào)位置信息;
將所述機(jī)器指令節(jié)點(diǎn)信息記錄至新建的指令表,并將所述指令標(biāo)號(hào)位置信息中的指令標(biāo)號(hào)名記錄至新建的指令標(biāo)號(hào)表;
若所述當(dāng)前行指令是分支跳轉(zhuǎn)指令,且所述指令標(biāo)號(hào)表中不存在與所述指令標(biāo)號(hào)名一致的歷史指令標(biāo)號(hào)名,則將所述當(dāng)前行指令的指令標(biāo)號(hào)名記錄至新建的回填表,并在掃描至所述匯編源碼文件的文件尾時(shí)將獲取到相同的指令標(biāo)號(hào)名時(shí)回填對(duì)應(yīng)的指令地址;
基于所述指令表和/或所述回填表映射生成機(jī)器代碼。
可選地,所述將所述當(dāng)前行指令的指令標(biāo)號(hào)名記錄至新建的回填表,之前還包括:
判斷所述當(dāng)前行指令是否為分支跳轉(zhuǎn)指令;
若所述當(dāng)前行指令是分支跳轉(zhuǎn)指令,則將所述當(dāng)前行指令的指令標(biāo)號(hào)名與所述指令標(biāo)號(hào)表中已保存的歷史指令標(biāo)號(hào)名進(jìn)行對(duì)比;
若所述指令標(biāo)號(hào)表中不存在與所述指令標(biāo)號(hào)名一致的歷史指令標(biāo)號(hào)名,則執(zhí)行步驟:將所述當(dāng)前行指令的指令標(biāo)號(hào)名記錄至新建的回填表。
可選地,所述將獲取到相同的指令標(biāo)號(hào)名時(shí)回填對(duì)應(yīng)的指令地址,包括:
在對(duì)所述匯編源碼文件掃描結(jié)束后,讀取已建立的多個(gè)所述指令表和多個(gè)所述指令標(biāo)號(hào)表,其中所述指令表和所述指令標(biāo)號(hào)表的個(gè)數(shù)與所述匯編源碼文件的指令行數(shù)相同;
獲取所述回填表中的待回填指令標(biāo)號(hào)名,從所述指令標(biāo)號(hào)表中篩選出與所述待回填指令標(biāo)號(hào)名相同的目標(biāo)指令標(biāo)號(hào)名,其中所述回填表的個(gè)數(shù)小于所述匯編源碼文件的指令行數(shù);
基于所述目標(biāo)指令標(biāo)號(hào)名和所述待回填指令標(biāo)號(hào)名確定相對(duì)偏移地址;
將所述相對(duì)偏移地址回填至所述指令表中的二進(jìn)制指令碼中。
可選地,所述基于所述目標(biāo)指令標(biāo)號(hào)名和所述待回填指令標(biāo)號(hào)名確定相對(duì)偏移地址,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳前海微眾銀行股份有限公司,未經(jīng)深圳前海微眾銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011000226.3/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





