本發明涉及計算機,特別是涉及一種二進制翻譯方法、裝置、電子設備及可讀存儲介質。
背景技術:
1、在計算機技術領域中,通常通過二進制翻譯技術,即通過翻譯器將客戶機指令翻譯成宿主機指令,以使一種指令集體系架構(instruction?set?architecture,isa)編譯的程序也能在另一種指令集體系架構的硬件平臺運行。
2、而隨著二進制翻譯技術在各個場景的應用,客戶機指令中往往存在大量的返回指令,而在對返回指令進行翻譯時,需要確定返回指令的返回地址所對應的宿主機地址。因此,為了保證二進制翻譯效率,如何確定返回地址對應的宿主機地址成為了亟需解決的問題。
技術實現思路
1、本發明實施例的目的在于提供一種二進制翻譯方法、裝置、電子設備及可讀存儲介質,以解決如何確定返回地址對應的宿主機地址的問題。具體技術方案如下:
2、在本發明實施的第一方面,首先提供了一種二進制翻譯方法,所述方法包括:
3、翻譯待處理塊得到第一序列之后,在所述第一序列中添加第一指令序列;所述第一指令序列用于將函數調用指令對應的跳轉塊的客戶機虛擬地址寫入至預設的地址記錄棧中;所述待處理塊為存在函數調用指令的待翻譯的基本塊;所述跳轉塊為所述函數調用指令的下一條客戶機指令所在的基本塊;
4、翻譯所述跳轉塊以獲取所述跳轉塊的宿主機虛擬地址,并在所述跳轉塊對應的待處理塊的第一指令序列中添加第二指令序列;所述第二指令序列用于將所述宿主機虛擬地址作為與所述跳轉塊的客戶機虛擬地址相對應的記錄地址,寫入至所述地址記錄棧中;
5、若待翻譯的客戶機指令為返回指令,翻譯所述返回指令得到第二序列,并在所述第二序列中添加第三指令序列;所述第三指令序列用于從所述地址記錄棧中獲取與所述返回指令的返回地址相對應的記錄地址,作為目標地址,并跳轉至所述目標地址。
6、在本發明實施的第二方面,還提供了一種二進制翻譯裝置,所述裝置包括:
7、第一添加模塊,用于翻譯待處理塊得到第一序列之后,在所述第一序列中添加第一指令序列;所述第一指令序列用于將函數調用指令對應的跳轉塊的客戶機虛擬地址寫入至預設的地址記錄棧中;所述待處理塊為存在函數調用指令的待翻譯的基本塊;所述跳轉塊為所述函數調用指令的下一條客戶機指令所在的基本塊;
8、第一翻譯模塊,用于翻譯所述跳轉塊以獲取所述跳轉塊的宿主機虛擬地址,并在所述跳轉塊對應的待處理塊的第一指令序列中添加第二指令序列;所述第二指令序列用于將所述宿主機虛擬地址作為與所述跳轉塊的客戶機虛擬地址相對應的記錄地址,寫入至所述地址記錄棧中;
9、第二翻譯模塊,用于若待翻譯的客戶機指令為返回指令,翻譯所述返回指令得到第二序列,并在所述第二序列中添加第三指令序列;所述第三指令序列用于從所述地址記錄棧中獲取與所述返回指令的返回地址相對應的記錄地址,作為目標地址,并跳轉至所述目標地址。
10、在本發明實施的第三方面,還提供了一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
11、存儲器,用于存放計算機程序;
12、處理器,用于執行存儲器上所存放的程序時,實現上述第一方面所述的方法。
13、在本發明實施的第四方面,還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有指令,當其在計算機上運行時,使得計算機執行上述第一方面所述的方法。
14、在本發明實施的第五方面,還提供了一種包含指令的計算機程序產品,當其在計算機上運行時,使得所述計算機執行上述第一方面所述的方法。
15、本發明實施例提供的二進制翻譯方法,通過地址記錄棧存儲跳轉塊的客戶機虛擬地址以及宿主機虛擬地址,通過在第一序列中添加第一指令序列以及第二指令序列,可以在執行翻譯后的待處理塊時,通過第一指令序列以及第二指令序列預先將跳轉塊的客戶機虛擬地址以及宿主機虛擬地址寫入至地址記錄棧中,實現跳轉地址的預提取。進一步地,通過在翻譯返回指令時額外添加用于獲取目標地址并跳轉的第三指令序列,可以在宿主機執行返回指令時,直接從地址記錄棧中獲取返回地址對應的宿主機地址并跳轉,在一定程度上提高了翻譯后指令的執行效率,從而提高了二進制翻譯器的效率。
1.一種二進制翻譯方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述第一指令序列中至少包含待替換指令序列,所述待替換指令序列至少包含自跳轉指令;所述在所述跳轉塊對應的待處理塊的第一指令序列中添加第二指令序列,包括:
3.根據權利要求2所述的方法,其特征在于,所述在所述第一序列中添加第一指令序列之后,所述方法還包括:為所述第一序列添加待修改標記;
4.根據權利要求1所述的方法,其特征在于,所述在所述跳轉塊對應的待處理塊的第一指令序列中添加第二指令序列之后,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述方法還包括:
6.根據權利要求5所述的方法,其特征在于,所述方法還包括:為各所述基本塊配置第一參數;
7.根據權利要求6所述的方法,其特征在于,所述方法還包括:為各所述基本塊配置第二參數;
8.根據權利要求1-7任一項所述的方法,其特征在于,所述方法還包括:
9.一種二進制翻譯裝置,其特征在于,所述裝置包括:
10.一種電子設備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
11.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-8中任一所述的方法。