CN113282301B - 基于高级语言与汇编语言相关性的汇编指令转换方法 - Google Patents

基于高级语言与汇编语言相关性的汇编指令转换方法 Download PDF

Info

Publication number
CN113282301B
CN113282301B CN202110827966.2A CN202110827966A CN113282301B CN 113282301 B CN113282301 B CN 113282301B CN 202110827966 A CN202110827966 A CN 202110827966A CN 113282301 B CN113282301 B CN 113282301B
Authority
CN
China
Prior art keywords
assembly
code
template
instruction
codes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110827966.2A
Other languages
English (en)
Other versions
CN113282301A (zh
Inventor
温研
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202110827966.2A priority Critical patent/CN113282301B/zh
Publication of CN113282301A publication Critical patent/CN113282301A/zh
Application granted granted Critical
Publication of CN113282301B publication Critical patent/CN113282301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了基于高级语言与汇编语言相关性的汇编指令转换方法,通过在已有平台上建立嵌入汇编指令的模板汇编指令与代码映射集,建立与无法反汇编的汇编指令相对应的高级语言代码,再通过在目标平台上编译高级语言代码形成目标平台的汇编指令,从而实现了已有平台与目标平台间的汇编指令转换,使开发者无需掌握目标平台的汇编指令和规则即可完成汇编指令的转换,节省了跨平台软件开发的时间成本,有效提高了开发效率,加快了开发进度。

Description

基于高级语言与汇编语言相关性的汇编指令转换方法
技术领域
本发明属于计算机系统编译开发技术领域,具体涉及基于高级语言与汇编语言相关性的汇编指令转换方法。
背景技术
在操作系统上进行软件开发时,为了方便程序设计、提高软件的运行效率或实现某种特殊功能,开发者往往需要使用汇编语言对高级语言进行优化,即在高级语言设计的程序代码中嵌入汇编代码实现优化。高级语言主要包括C语言和C++语言等。
现有技术中,在跨平台开发时,由于不同平台的指令集不同,各自的汇编代码间也存在差异,因此为了使原程序的功能在新平台仍然可用,主要采用以下两种方式完成迁移:一是采用将现有平台的汇编代码逆向为高级语言后再到新平台编译生成新平台的汇编代码的方式完成跨平台的代码迁移,二是采用动态指令转换的方式实现代码的迁移。
第一种方式的核心是完成高级语言中嵌入的汇编语言的迁移,由于嵌入的汇编语言本身存在的意义就是实现了高级语言无法实现的操作,所以这些嵌入的汇编指令通常也无法直接逆向成为高级语言,为此,开发者还需要针对新平台进行适应性的汇编指令的开发。然而,实际当中由于开发者缺乏新架构的开发经验、某些芯片厂商未提供指令集的说明文档等原因,都会给平台兼容开发带来很大阻碍,严重影响开发进度和效率。第二种方式的核心是完成二进制机器码在不同平台上的翻译,由于二进制动态指令转换需要相关开发者对目标架构非常熟悉,而且二进制机器码跨平台转化时往往代码量会有所增多,因此转换过程效率较低,且转换后的代码的执行开销较大。
发明内容
有鉴于此,本发明提供了基于高级语言与汇编语言相关性的汇编指令转换方法,能够实现不同平台间汇编指令的灵活高效的转换。
本发明提供的基于高级语言与汇编语言相关性的汇编指令转换方法,具体包括以下步骤:
步骤1、建立由高级语言编写的最简代码构成的最简代码集;所述最简代码为实现了单一功能的、具有最小代码量的高级语言代码;
步骤2、在待转换代码所在的已有平台上,编译所述最简代码集中的所有最简代码生成已有平台的汇编代码,由所述最简代码集对应的所有汇编代码构成汇编代码集合;解析所述汇编代码集合中的汇编代码得到由模板汇编指令组成的模板汇编指令集;
步骤3、根据所述模板汇编指令集归纳分析所述汇编代码集合,得到每个模板汇编指令所对应的所有汇编代码及最简代码;由确定出的所有最简代码形成模板汇编指令的模板最简代码集;选择所述模板最简代码集中具有最短汇编代码的最简代码作为所述模板汇编指令的模板代码,并形成所述模板汇编指令与所述模板代码间的映射关系;
步骤4、确定所述待转换代码中的待转换汇编指令,根据所述映射关系确定所述待转换汇编指令对应的模板代码作为有效高级语言代码,由所述待转换汇编指令与所述有效高级语言代码形成有效映射集;
步骤5、在目标平台上,编译所述有效映射集中的有效高级语言代码,生成所述目标平台的汇编指令,完成所述待转换汇编指令从所述已有平台到目标平台的转换。
进一步地,所述步骤2中解析所述汇编代码集合中的汇编代码得到由模板汇编指令组成的模板汇编指令集,包括以下步骤:
步骤2.1、选择所述汇编代码集合中的汇编代码,确定当前汇编代码中涉及的所有汇编指令;
步骤2.2、遍历所有汇编指令,分析汇编指令的操作码和操作数,由所述操作码确定汇编指令的功能,由所述操作数确定汇编指令使用的数据和寄存器;
步骤2.3、若完成了所述汇编代码集合中所有汇编代码的分析,则退出本流程;否则,执行步骤2.1。
进一步地,所述步骤4中确定所述待转换代码中的待转换汇编指令的过程为:确定汇编代码中所涉及的所有汇编指令;遍历所有汇编指令,分析汇编指令的操作码和操作数,由操作码确定汇编指令的功能,由操作数确定汇编指令使用的数据和寄存器。
进一步地,所述步骤4中根据所述映射关系确定所述待转换汇编指令对应的模板代码作为有效高级语言代码,包括以下步骤:
步骤4.1、在所述模板汇编指令中,找到与所述待转换汇编指令相对应的汇编指令作为有效模板汇编指令;
步骤4.2、根据映射关系,确定与所述有效模板汇编指令相对应的模板代码作为所述有效高级语言代码。
进一步地,所述步骤5中还包括对所述有效模板汇编指令中的汇编指令与所述待转换汇编指令的相关性标记。
进一步地,所述已有平台或目标平台为x86、ARM、MIPS、龙芯、申威或RISC-V。
进一步地,所述高级语言包括C语言和C++语言。
有益效果:
本发明通过在已有平台上建立嵌入汇编指令的模板汇编指令与代码映射集,建立与无法反汇编的汇编指令相对应的高级语言代码,再通过在目标平台上编译高级语言代码形成目标平台的汇编指令,从而实现了已有平台与目标平台间的汇编指令转换,使开发者无需掌握目标平台的汇编指令和规则即可完成汇编指令的转换,节省了跨平台软件开发的时间成本,有效提高了开发效率,加快了开发进度。
附图说明
图1为本发明提供的基于高级语言与汇编语言相关性的汇编指令转换方法的流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供的基于高级语言与汇编语言相关性的汇编指令转换方法,解决的问题是如何将已有平台上的嵌入了汇编代码的高级语言代码移植到异构的目标平台上,其核心思想是:根据高级语言与汇编语言的相关性,得到与已有平台的汇编代码相匹配的高级语言预选代码清单,从中选中具有最短汇编代码的高级语言代码作为符合新平台要求的高级语言代码,然后将生成的高级语言代码在新平台进行编译生成适用于新平台的汇编指令,完成汇编指令跨平台的转换。
本发明提供的基于高级语言与汇编语言相关性的汇编指令转换方法,方法流程如图1所示,包括以下步骤:
步骤1、建立高级语言的最简代码集。
采用高级语言编写软件开发中可能涉及的所有功能的最简代码集。最简代码集中包含多个最简代码,最简代码为实现某类功能的最小代码量的代码,如分别实现变量定义、变量赋值、数学运算、函数调用、条件语句、数组操作、指针操作等功能的代码。
步骤2、在已有平台上,编译最简代码集中的所有最简代码生成已有平台上的汇编代码,由最简代码集对应的所有汇编代码构成汇编代码集合A;解析汇编代码集合A中的所有汇编代码,得到汇编代码中涉及的汇编指令及汇编指令的详细信息,本发明中将得到的汇编指令及详细信息命名为模板汇编指令,由所有模板汇编指令组成模板汇编指令集。
解析汇编代码集合A中的所有汇编代码的过程包括:
确定汇编代码中所涉及的所有汇编指令;
遍历所有汇编指令,分析汇编指令的操作码和操作数,由操作码确定汇编指令的功能,由操作数确定汇编指令使用的数据和寄存器。
步骤3、根据步骤2得到的模板汇编指令的详细信息,对汇编代码集合A中的汇编代码进行归纳分析,确定每个模板汇编指令对应的所有汇编代码,进而确定相关的最简代码,由确定出的所有最简代码形成模板汇编指令的模板最简代码集;从模板最简代码集中选择具有最短汇编代码的最简代码作为模板汇编指令的模板代码,形成模板汇编指令与模板代码间的映射关系。
根据步骤2得到的汇编指令的详细信息,在汇编代码集合A中,筛选出包含模板汇编指令的所有汇编代码,根据汇编代码与最简代码间的对应关系,确定模板汇编指令对应的所有最简代码,形成模板汇编指令的模板最简代码集。
模板最简代码集中的最简代码通常不仅对应一个模板汇编指令,因此为了进一步提高转换效率,本发明选择模板最简代码集中具有最短汇编代码的最简代码作为模板汇编指令的模板代码。
步骤4、确定待转换代码中所嵌入的待转换汇编指令,根据步骤3形成的映射关系确定待转换汇编指令对应的模板代码作为有效高级语言代码,形成有效映射集。
步骤4.1、在待转换代码中找到嵌入的待转换汇编代码,采用步骤2中的汇编代码解析方法解析待转换汇编代码,过程如下:确定汇编代码中所涉及的所有汇编指令;遍历所有汇编指令,分析汇编指令的操作码和操作数,由操作码确定汇编指令的功能,由操作数确定汇编指令使用的数据和寄存器;
步骤4.2、在模板汇编指令中,找到与待转换汇编指令相对应的汇编指令作为有效模板汇编指令;
步骤4.3、根据映射关系,确定与有效模板汇编指令相对应的模板代码作为有效高级语言代码。
遍历所有的待转换汇编指令形成有效映射集。
步骤5、在目标平台上,编译步骤4中形成的有效模板汇编指令与代码映射集中的有效高级语言代码,生成与之对应的目标平台上的新平台汇编指令。
此外,为了进一步去除无效汇编指令提高转换后代码的执行效率,本发明中,还提供对有效模板汇编指令中的汇编指令与待转换汇编指令的相关性的标记,以辅助开发者剔除新平台汇编指令中与待转换汇编指令相关度较低的汇编指令。
实施例:
本实施例以ARM平台作为已有平台、以C语言作为高级语言、以MIPS平台作为目标平台为例,采用本发明提供的基于高级语言与汇编语言相关性的汇编指令转换方法,实现基于C语言的汇编指令从ARM平台到MIPS平台的转换,具体过程如下:
步骤1-1、汇编指令解析。
解析指令,对操作码和操作数进行分析,根据操作码定位功能,根据操作数定位数据和寄存器。
步骤1-2、构建汇编指令与代码映射集。
基于C语言编写所有类型的最简代码集,其包含的最简代码覆盖了C语言功能的所有类型代码,而且是以最小代码量构成,如变量定义、变量赋值、数学运算、函数调用、条件语句、数组操作、指针操作等。然后对相应代码进行编译生成对应的汇编指令。
然后对最简代码生成的汇编指令依次进行归纳,将包含某一汇编指令格式对应的C语言代码归类到此汇编指令下,此汇编指令在本发明中称为模板汇编指令。依次类推,将所有生成的汇编指令都归纳出对应的C语言代码集。以ARM平台“mov register, num”为例:
代码1:
void a()
{
int a[1];
a[0] = 1;
}
生成汇编
// 函数及int a[1] 汇编指令开始段
1 stp x29, x30, [sp, -32]!
2 add x29, sp, 0
3 adrp x0, __stack_chk_guard
4 add x0, x0, :lo12:__stack_chk_guard
5 ldr x1, [x0]
6 str x2 [x29, 24]
// a[0] = 1 汇编指令段
7 mov x1, 0
8 mov w0, 1
//函数及int a[1] 汇编指令结束段
9 str w0, [x29, 16]
10 nop
11 adrp x0, __stack_chk_guard
12 add x0, x0, :lo12:__stack_chk_guard
13 ldr x1, [x29, 24]
14 ldr x0, [x0]
代码2:
void a()
{
int a;
a = 1;
}
生成汇编
//函数及int a[1] 汇编指令开始段
1 sub sp, sp, #16
// a[0] = 1 汇编指令段
2 mov w0, 1
3 str w0, [sp, 12]
//函数及int a[1] 汇编指令结束段
4 nop
5 add sp, sp, 16
代码1中的“mov w0, 1”和代码2中的“mov w0, 1”即对应上述的模板汇编指令,其可以由 a[0]=1生成,也可以由a = 1生成,这对熟悉ARM平台汇编的开发者来说很容易定位。
实际上,最简代码中还会有其它可以生成符合此模板汇编指令的代码,需要在所有对应的C语言代码中,筛选出汇编代码最短的C语言代码作为模板汇编指令对应的C语言代码。假设只有以上两个代码符合要求,则代码2: [(“a = 1; , “2-3”), (“int a;”, “1,4-5”),(“sub sp, sp, #16”, … , “add sp, sp, 16”)]则为模板汇编指令“movregister num”的模板代码,模板汇编指令与对应的模板代码统称为模板汇编指令与代码映射。[]中内容即模板汇编指令与代码映射,里边包括三部分,第一个()中是与模板汇编指令对应的C语言代码,称之为必要模板指令,第二个()是保证此C语言代码可编译的必要代码段,但是在嵌入汇编中并不需要,称之为非必要模板指令,第三个()是完整C语言代码对应的汇编指令。“”中前边内容是具体的代码内容,后边数字是C语言对应汇编指令的行数范围。
根据以上方式,构建所有模板汇编指令与C语言代码映射,本发明称之为模板汇编指令与代码映射集。
步骤1-3、根据实际嵌入汇编指令匹配C语言代码。
依然利用步骤1的方式解析实际要转换的嵌入汇编指令,并与模板汇编指令与代码映射集中的模板汇编指令对比,找到相匹配的模板汇编指令,本发明称之为有效模板汇编指令,从而定位到相应的C语言代码,本发明称之为有效C语言代码。
根据此方案,依次匹配嵌入汇编指令对应的C语言代码,最终生成符合有效模板汇编指令与代码映射集。
步骤1-4、生成新架构汇编代码及对比结果。
将匹配到的代码利用新架构的编译器进行编译,使其生成对应的汇编指令。同时提取有效模板汇编指令与代码映射集中的模板代码信息,将对应原平台汇编指令也生成一个代码文件,并根据其中的信息,标记出必要模板指令和非必要模板指令。如下为步骤2针对ARM与MIPS平台对比。
ARM平台:
1 sub sp, sp, #16
2 mov w0, 1
3 str w0, [sp, 12]
4 nop
5 add sp, sp, 16
MIPS平台:
1 move $fp,$sp
2 li $2,1
3 sw $2,0($fp)
4 nop
5 move $sp,$fp
最后将两个文件提交给开发者,开发者可以通过对比二者的指令内容和特点即可实现对新架构汇编指令的裁剪,得到新架构的嵌入汇编指令。根据上表,对于不熟悉MIPS平台的开发者来说,很容易推断,MIPS的第2、3行即为有效的指令,并能够根据ARM平台的汇编经验很简单的对MIPS汇编指令作进一步裁剪,得到ARM平台“mov w0, 1”对应的汇编指令为“li $2, 1”。
此类比同样适用于其它平台,依然以上边的C语言代码为基础,其x86平台与ARM平台对比如下。
x86平台:
1 pushq %rbp
2 movq %rsp, %rbp
3 movl $1, -4(%rbp)
4 nop
5 popq %rbp
ARM平台:
1 sub sp, sp, #16
2 mov w0, 1
3 str w0, [sp, 12]
4 nop
5 add sp, sp, 16
很相似的指令,x86的汇编指令“movq %rsp,%rbp”对应着ARM汇编指令的“mov w0,1”。
MIPS平台与申威平台对比。
MIPS平台:
1 move $fp,$sp
2 li $2,1
3 sw $2,0($fp)
4 nop
5 move $sp,$fp
申威平台:
1 ldi $30,-32($30)
2 Stl $26,0($30)
3 stl $15,8($30)
4 mov $30,$15
5 ldi $1,1($31)
6 stw $1,16($15)
申威平台的汇编指令看似相对复杂,但是对于了解汇编指令的开发者不难分析出来,对于一个函数必定有进栈和出栈的过程,从汇编指令看是一个几乎完全对称的指令过程。从申威汇编指令中可以看出,1至4行和8至11行是完全对称的指令,第7行虽然比较特别,当函数内容为空时这个指令是一定存在的,因此,很容易得出结论,MIPS平台的汇编指令“li $2,1”对应的申威指令即为“ldi $1,1($31)”。
本发明提供的方法可应用于现有的各类平台,包括x86、ARM平台、MIPS平台、龙芯、申威及RISC-V等。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.基于高级语言与汇编语言相关性的汇编指令转换方法,其特征在于,具体包括以下步骤:
步骤1、建立由高级语言编写的最简代码构成的最简代码集;所述最简代码为实现了单一功能的、具有最小代码量的高级语言代码;
步骤2、在待转换代码所在的已有平台上,编译所述最简代码集中的所有最简代码生成已有平台的汇编代码,由所述最简代码集对应的所有汇编代码构成汇编代码集合;解析所述汇编代码集合中的汇编代码得到由模板汇编指令组成的模板汇编指令集;
步骤3、根据所述模板汇编指令集归纳分析所述汇编代码集合,得到每个模板汇编指令所对应的所有汇编代码,再根据汇编代码与最简代码之间的一一对应的关系间接地确定出模板汇编指令与最简代码之间一对多的对应关系,从而找到与模板汇编指令相对应的所有最简代码,由确定出的所有最简代码构成模板汇编指令的模板最简代码集;选择所述模板最简代码集中具有最短汇编代码的最简代码作为与所述模板汇编指令一一对应的模板代码,所述模板汇编指令与模板代码之间的一一对应的关系即为所述模板汇编指令与所述模板代码间的映射关系;
步骤4、确定所述待转换代码中的待转换汇编指令,根据所述映射关系确定所述待转换汇编指令对应的模板代码作为有效高级语言代码,由所述待转换汇编指令与所述有效高级语言代码形成有效映射集;
步骤5、在目标平台上,编译所述有效映射集中的有效高级语言代码,生成所述目标平台的汇编指令,完成所述待转换汇编指令从所述已有平台到目标平台的转换。
2.根据权利要求1所述的汇编指令转换方法,其特征在于,所述步骤2中解析所述汇编代码集合中的汇编代码得到由模板汇编指令组成的模板汇编指令集,包括以下步骤:
步骤2.1、选择所述汇编代码集合中的汇编代码,确定当前汇编代码中涉及的所有汇编指令;
步骤2.2、遍历所有汇编指令,分析汇编指令的操作码和操作数,由所述操作码确定汇编指令的功能,由所述操作数确定汇编指令使用的数据和寄存器;
步骤2.3、若完成了所述汇编代码集合中所有汇编代码的分析,则退出本流程;否则,执行步骤2.1。
3.根据权利要求1所述的汇编指令转换方法,其特征在于,所述步骤4中确定所述待转换代码中的待转换汇编指令的过程为:确定汇编代码中所涉及的所有汇编指令;遍历所有汇编指令,分析汇编指令的操作码和操作数,由操作码确定汇编指令的功能,由操作数确定汇编指令使用的数据和寄存器。
4.根据权利要求1或3所述的汇编指令转换方法,其特征在于,所述步骤4中根据所述映射关系确定所述待转换汇编指令对应的模板代码作为有效高级语言代码,包括以下步骤:
步骤4.1、在所述模板汇编指令中,找到与所述待转换汇编指令相对应的汇编指令作为有效模板汇编指令;
步骤4.2、根据映射关系,确定与所述有效模板汇编指令相对应的模板代码作为所述有效高级语言代码。
5.根据权利要求4所述的汇编指令转换方法,其特征在于,所述步骤5中还包括对所述有效模板汇编指令中的汇编指令与所述待转换汇编指令的相关性标记。
6.根据权利要求1所述的汇编指令转换方法,其特征在于,所述已有平台或目标平台为x86、ARM、MIPS、龙芯、申威或RISC-V。
7.根据权利要求1所述的汇编指令转换方法,其特征在于,所述高级语言包括C语言和C++语言。
CN202110827966.2A 2021-07-22 2021-07-22 基于高级语言与汇编语言相关性的汇编指令转换方法 Active CN113282301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110827966.2A CN113282301B (zh) 2021-07-22 2021-07-22 基于高级语言与汇编语言相关性的汇编指令转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110827966.2A CN113282301B (zh) 2021-07-22 2021-07-22 基于高级语言与汇编语言相关性的汇编指令转换方法

Publications (2)

Publication Number Publication Date
CN113282301A CN113282301A (zh) 2021-08-20
CN113282301B true CN113282301B (zh) 2021-11-02

Family

ID=77286938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110827966.2A Active CN113282301B (zh) 2021-07-22 2021-07-22 基于高级语言与汇编语言相关性的汇编指令转换方法

Country Status (1)

Country Link
CN (1) CN113282301B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116820419A (zh) * 2022-03-22 2023-09-29 瑞昱半导体股份有限公司 源代码校验方法及非暂态计算机可读存储介质装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830975A (zh) * 2012-08-15 2012-12-19 深圳市翌日科技有限公司 一种汇编语言到高级语言的代码转换方法和装置
CN109284104A (zh) * 2018-09-28 2019-01-29 北京航空航天大学青岛研究院 基于网页汇编语言控制页面跳转的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140137090A1 (en) * 2012-11-12 2014-05-15 Sgn Games, Inc. System and method of cross-platform software development and compilation
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830975A (zh) * 2012-08-15 2012-12-19 深圳市翌日科技有限公司 一种汇编语言到高级语言的代码转换方法和装置
CN109284104A (zh) * 2018-09-28 2019-01-29 北京航空航天大学青岛研究院 基于网页汇编语言控制页面跳转的方法

Also Published As

Publication number Publication date
CN113282301A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
US8832669B2 (en) Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization
US6035120A (en) Method and apparatus for converting executable computer programs in a heterogeneous computing environment
US7559050B2 (en) Generating software development tools via target architecture specification
JP5951022B2 (ja) デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのリンク
Cifuentes et al. Specifying the semantics of machine instructions
Hummel et al. Annotating the Java bytecodes in support of optimization
Reshadi et al. An efficient retargetable framework for instruction-set simulation
JPH0762826B2 (ja) 多言語最適化コンパイラ内のフォールディングメカニズムを構成する方法
CN113282301B (zh) 基于高级语言与汇编语言相关性的汇编指令转换方法
Cifuentes et al. Experience in the design, implementation and use of a retargetable static binary translation framework
Husár et al. Automatic C compiler generation from architecture description language ISAC
JP2004272922A (ja) エミュレーションコンピュータ技術を実行する直接命令
US8621444B2 (en) Retargetable instruction set simulators
Cifuentes Partial automation of an integrated reverse engineering environment of binary code
Bezzubikov et al. Automatic dynamic binary translator generation from instruction set description
CN114691151A (zh) 一种基于深度学习的优化代码反编译方法和系统
US20040045018A1 (en) Using address space bridge in postoptimizer to route indirect calls at runtime
CN114168153B (zh) 一种编译方法、计算设备及存储介质
Merten et al. An overview of the IMPACT x86 binary reoptimization framework
Himmelbauer et al. The Vienna Architecture Description Language
Ritson Translating ETC to LLVM Assembly.
Bureš Optimalizace ASM kódu pro DLX procesor pomocí LLVM systému
Thiems Optimization and executable regeneration in the IMPACT binary reoptimization framework
CN115373689A (zh) 基于llvm的编译优化方法、装置、设备及介质
Johnstone et al. Suppression of redundant operations in reverse compiled code using global dataflow analysis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant