CN114995799B - 一种汇编代码生成方法、装置及电子设备 - Google Patents

一种汇编代码生成方法、装置及电子设备 Download PDF

Info

Publication number
CN114995799B
CN114995799B CN202210838239.0A CN202210838239A CN114995799B CN 114995799 B CN114995799 B CN 114995799B CN 202210838239 A CN202210838239 A CN 202210838239A CN 114995799 B CN114995799 B CN 114995799B
Authority
CN
China
Prior art keywords
target
assembly
data type
pss
code
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
CN202210838239.0A
Other languages
English (en)
Other versions
CN114995799A (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.)
New H3C Semiconductor Technology Co Ltd
Original Assignee
New H3C Semiconductor 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 New H3C Semiconductor Technology Co Ltd filed Critical New H3C Semiconductor Technology Co Ltd
Priority to CN202210838239.0A priority Critical patent/CN114995799B/zh
Publication of CN114995799A publication Critical patent/CN114995799A/zh
Application granted granted Critical
Publication of CN114995799B publication Critical patent/CN114995799B/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/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/311Functional or applicative languages; Rewrite languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种汇编代码生成方法、装置及电子设备,所述方法包括:获取携带有预期编程语言标志符和目标代码段的目标PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系;通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码。从而提供了一种能够随机生成汇编代码的方法。

Description

一种汇编代码生成方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种汇编代码生成方法、装置及电子设备。
背景技术
CPU的指令集用于规定如何执行CPU指令,为确保CPU指令的执行符合指令集的规定,通常会使用汇编代码对指令集中所有的CPU指令进行验证。由于CPU指令及参数数量较多,传统的编写定向测试汇编代码的验证方法很难对指令和指令组合进行全面地覆盖,目前以SystemVerilog和UVM为代表的随机化验证方法学已经成为芯片验证的主流方法,这种随机化验证的方法结合覆盖率分析具有全面且高效的特点。
但是,CPU指令验证通常需要使用汇编代码,而SystemVerilog和UVM无法产生随机化的汇编代码及其参数,因此无法有效地对CPU指令集进行随机化验证。因此,缺少能够随机生成汇编代码的方法,导致无法有效地对CPU指令集进行随机化验证。
发明内容
本发明实施例的目的在于提供一种汇编代码生成方法、装置及电子设备,以提供了一种能够随机生成汇编代码的方法。具体技术方案如下:
在本发明的第一方面,提高了一种汇编代码生成方法,所述方法包括:
获取携带有预期编程语言标志符和目标代码段的目标便携式测试和激励标准PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系;
通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码。
在一种可能的实施例中,所述目标代码段与所述预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系;
所述通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码,包括:
从所述目标代码段中获取目标指令标识以及每个所述目标指令标识的变量;
利用PSS工具分别随机生成每个所述变量的变量值;
通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中的汇编指令与所述目标指令标识存在所述第一对应关系,且所述目标汇编代码中的参数的参数值与所述目标指令标识的所述变量的变量值相同。
在一种可能的实施例中,所述目标代码段与目标汇编代码之间的对应关系还包括:变量值数据类型与参数数据类型之间的第二对应关系;
所述通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,包括:
通过所述PSS工具根据所述第一对应关系和所述第二对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中参数的参数数据类型与所述目标指令标识的所述变量的变量值数据类型存在所述第二对应关系。
在一种可能的实施例中,所述第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或
所述变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,所述第二立即数数据类型的立即数的取值大于0;和/或
所述变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,所述第三立即数据类型的立即数的取值为0或1。
在一种可能的实施例中,所述目标指令标识为函数名称,并且所述第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令相同。
在本发明的第二方面,提高了一种汇编代码生成装置,所述装置包括:
模块获取模块,用于获取携带有预期编程语言标志符和目标代码段的目标便携式测试和激励标准PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
关系确定模块,用于通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系;
代码生成模块,用于通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码。
在一种可能的实施例中,所述目标代码段与所述预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系;
所述代码生成模块,包括:
变量值生成子模块,用于利用PSS工具分别随机生成每个所述变量的变量值;
目标汇编代码生成子模块,用于通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中的汇编指令与所述目标指令标识存在所述第一对应关系,且所述目标汇编代码中的参数的参数值与所述目标指令标识的所述变量的变量值相同。
在一种可能的实施例中,所述目标代码段与目标汇编代码之间的对应关系还包括:变量值数据类型与参数数据类型之间的第二对应关系;
目标汇编代码生成子模块,具体用于通过所述PSS工具根据所述第一对应关系和所述第二对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中参数的参数数据类型与所述目标指令标识的所述变量的变量值数据类型存在所述第二对应关系。
在一种可能的实施例中,所述第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或
所述变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,所述第二立即数数据类型的立即数的取值大于0;和/或
所述变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,所述第三立即数据类型的立即数的取值为0或1。
在一种可能的实施例中,所述目标指令标识为函数名称,并且所述第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令相同。
在本发明的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
在本发明第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明提供的实施例,由于PSS工具在处理PSS模型时可以高效的生成随机测试的代码,而本发明的目标PSS模型的预期编程语言标志符为汇编语言,因此使得PSS工具在处理目标PSS模型时可以根据预期编程语言标志符确定其需要生成的代码是以汇编语言编写的汇编代码,并且预期编程语言标志符表示的预期编程语言与目标代码段之间具有对应关系,由于PSS工具根据预期编程语言标志符确定了目标代码段的预期编程语言,即汇编语言,基于此,PSS工具可以进一步确定预期编程语言与目标代码段的对应关系,即汇编语言与目标代码段的对应关系,进而通过PSS工具根据该对应关系生成目标代码段对应的目标汇编代码。通过PSS工具对目标PSS模型的处理,简单高效的随机生成用于测试的目标汇编代码。从而提供了一种能够随机生成汇编代码的方法。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种汇编代码生成方法的流程示意图;
图2为本发明实施例提供的另一种汇编代码生成方法的流程示意图;
图3为本发明实施例提供的另一种汇编代码生成方法的流程示意图;
图4为本发明实施例提供的一种汇编代码生成装置的结构示意图;
图5为本公开发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
随着芯片规模的不断扩大,传统的定向测试已经无法满足芯片验证的要求,而相关技术中的随机化验证方法不能产生随机化的汇编指令来对需要使用汇编代码进行指令验证的芯片,例如CPU,进行验证,基于此,本发明提供了一种汇编代码生成方法,如图1所示,方法包括:
S101,获取携带有预期编程语言标志符和目标代码段的目标PSS模型。
S102,通过PSS工具根据预期编程语言标志符确定预先针对目标代码段与预期编程语言之间的对应关系。
S103,通过PSS工具根据对应关系随机生成目标代码段对应的目标汇编代码。
选用该实施例,由于PSS工具在处理PSS模型时可以高效的生成随机测试的代码,而本发明的目标PSS模型的预期编程语言标志符为汇编语言,因此使得PSS工具在处理目标PSS模型时可以根据预期编程语言标志符确定其需要生成的代码是以汇编语言编写的汇编代码,并且预期编程语言标志符表示的预期编程语言与目标代码段之间具有对应关系,由于PSS工具根据预期编程语言标志符确定了目标代码段的预期编程语言,即汇编语言,基于此,PSS工具可以进一步确定预期编程语言与目标代码段的对应关系,即汇编语言与目标代码段的对应关系,进而通过PSS工具根据该对应关系生成目标代码段对应的目标汇编代码。通过PSS工具对目标PSS模型的处理,简单高效的随机生成用于测试的目标汇编代码。从而提供了一种能够随机生成汇编代码的方法。
其中,在S101中,预期编程语言标志符表示目标代码段的预期编程语言为汇编语言。
PSS(Portable Stimulus Standard,便携式测试和激励标准)为Accellera组织推出的,其目标为在较高的抽象级别上指定激励和测试的场景,其主要特点为:通过PSS模型可在较高抽象级别上定义随机激励(代码也是激励的一种)及其组合场景;通过PSS工具处理PSS模型可高效地生成随机测试的SystemVerilog和C/C++代码;通过PSS工具处理PSS模型可结合验证覆盖率优化生成的随机代码,实现随机代码的覆盖率的快速收敛。并且,PSS2.0标准能够大大提高芯片验证的效率,确保在不同的验证环境中激励的一致性。根据PSS2.0标准的介绍,PSS 2.0标准提供了C、CPP和SV这三个目标编程语言标志符,分别用于该三个预期编程语言标志符(language_identifier)表示编程程语言依次为C、C++和SystemVerilog,这样可以通过该三个目标编程语言标志符利用PSS工具方便地生成C/C++和SystemVerilog随机化代码。但是,PSS 2.0标准并没有为汇编语言提供的标志符,因此,相关技术中,PSS工具难以生成CPU指令验证所需的随机汇编代码。
本发明获取的目标PSS模型中,预期编程语言标志符用于表示目标代码段的预期编程语言为汇编语言。而如前所述,PSS 2.0标准并没有为汇编语言提供的预期编程语言标志符,因此,本发明获取的预期编程语言标志符是预先在目标PSS模型中新增的,例如新增一个标志符“ASM”作为预期编程语言标志符,用于指定目标PSS模型的目标代码段的预期编程语言为汇编语言。目标代码段为PSS工具在处理目标PSS模型时生成随机代码的依据,即PSS工具在处理目标PSS模型时是根据目标代码段中的代码为模板生成随机汇编代码的。由于本发明实施例中预期编程语言标志表示目标代码段的预期编程语言为汇编语言,使得PSS工具在处理目标PSS模型时根据预期编程语言标志符确定出其需要生成的随机代码为以汇编语言编写的。
目标PSS模型的目标代码段可以位于exec模块中,也可以位于其他自定义的模块中,本发明对此不作任何限制,目标PSS模型携带的预期编程语言标志符ASM也可以插入在该exec模块中。示例性的,下述为目标PSS模型的一段代码示例:
component top {
enum G_REGS {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9};
action A {
rand int a;
rand G_REGS reg1, reg2;
exec body ASM = ”””
mov {{reg1}}, {{a}}
ld.di {{reg2}}, {{reg1}}
”””;
}
}
其中,exec body ASM =”””……”””为exec模块,并且其中”””……”””内的代码为目标代码段的代码。
由于本发明实施例的目的为生成随机汇编代码,因此,目标PSS模型的目标代码段不能为已经确定了各参数值和寄存器的汇编代码,若如此,PSS工具通过处理目标PSS模型生成随机代码。又因为目标代码段的预期编程语言为汇编语言,所以目标代码段的编写逻辑可以按照汇编语言的编写格式,例如使用mov等汇编语言中指令名称相同或相近的函数,但其由于需要生成随机化的汇编代码,因此目标代码段中对应于寄存器、数值等参量的代码应该为变量而不是确定的寄存器和数值,示例性的,该目标代码段的编写可以为“mov{{reg1}}, {{a}}”类似代码,其中,reg1和a为变量,而不是“mov r3, 1234”这样的代码,其中,r3为特定的寄存器,1234为特定的整型数值。
可以理解的是,目标代码段携带的是需要验证的内容,以上述目标代码段为例,需要验证的是CPU能否按照指令集的规定正常运行mov指令。而出于验证的完备性考虑,如前所述对于一个芯片各指令的验证并不能通过一个固定的目标代码段实现,示例性的,即使CPU能够正常执行mov r3 1234指令,也并不能认为CPU能够正常执行mov指令,如mov r55678。因此,本发明实施例中的目标代码段也并不仅仅为一段确定的代码段,而是任何携带对芯片的验证内容的代码,虽然各目标代码段的内容不同,但各目标代码段的编写形式是一致的。
其中,在S102中,PSS工具根据目标代码段的预期编程语言标志符确定目标代码段的预设启程语言为汇编语言,进而确定出目标代码段和预期编程语言之间预先设定的对应关系,即目标代码段和汇编语言的对应关系。示例性的,若目标代码段的预期编程语言标志符为C(C语言的标志符),则PSS工具根据该预期编程语言标志符确定出的目标代码段和预期编程语言之间的预先设定的对应关系就为目标代码段和C语言的对应关系。该对应关系表示目标代码段中的代码与以预期编程语言编写的代码的映射关系,通过该对应关系,可以将目标代码段的代码生成为以预期编程语言编写的代码。
其中,在S103中,由于目标代码段与汇编语言的对应关系已经确定,因此PSS工具可以根据该对应关系处理目标PSS模型,生成目标代码段对应的目标汇编代码。可以理解的是,PSS工具处理目标PSS模型的过程实际上也包括为目标代码段的变量随机赋值的过程,以得到随机的汇编代码。
以上述目标PSS模型的一段代码为例,PSS工具根据目标代码段与汇编语言的对应关系处理该目标PSS模型,随机生成该目标汇编代码对应的目标汇编代码可以如下:
mov r3, 1234
mov r5, r3
该示例中,PSS工具根据对应关系将目标代码段中寄存器变量reg1随机确定为r3,寄存器变量reg2随机确定为r5,将目标代码段中的数值变量a随机确定为1234,并保持指令mov不变,得到了目标汇编代码,可以理解,r3和r5是PSS工具随机生成的通用寄存器,1234是PSS工具随机生成的整型数据。
如前所述,由于缺少直接随机生成汇编代码的方法,因此,相关技术中在面对需要生成汇编代码来测试芯片的场景时,一种可行的方式为:通常会编写脚本工具以生成特定芯片的随机化指令测试汇编代码。具体的,先根据汇编指令手册开发脚本工具,再执行该脚本工具直接生成带随机参数的汇编代码,使用汇编代码编译器对汇编代码进行编译,生成汇编可执行文件,芯片验证平台加载该汇编可执行文件,对芯片指令进行验证。
虽然直接编写脚本工具生成汇编代码可以对汇编指令和参数进行随机化,但是该方法不能对芯片指令进行抽象化建模,进而不能灵活高效的面对芯片指令的复杂交叉场景,例如不能对各种复杂的芯片指令进行验证。
而选用本发明的上述实施例,由于目标PSS模型携带了预设编程语言标志符和目标代码段,预设编程语言标志符表示目标代码段的预设编程语言为汇编语言,并且目标代码段与汇编语言之间具有对应关系,基于此,建立了针对于汇编语言的抽象化模型即目标PSS模型,而通过PSS工具处理该目标PSS模型无需编写自动化脚本也不需要编写定向汇编测试用例就可以随机生成的目标汇编代码,并且利用了抽象化的PSS模型和PSS工具,能够灵活高效的面对芯片指令的复杂交叉场景,提高芯片指令验证场景的验证完备性。
并且,相关技术中在面对需要生成汇编代码来测试芯片的场景时,另一种可能的方式为:根据汇编指令手册编写C语言与汇编代码的API接口函数,这些API接口函数需要覆盖指令手册中所有的汇编指令;使用C语言调用上述编写好的API接口函数,以建立以C语言为预期编程语言的PSS模型;通过PSS工具处理PSS模型,生成各种场景下的C代码文件;使用C语言编译器对生成的C代码进行编译,生成汇编可执行文件;验证平台加载汇编可执行文件,对芯片指令进行验证。
然而在该可能的方式中,在通过PSS工具生成各种C代码之后,若需要对芯片指令进行验证,还需要将C代码编译为汇编代码,该编译过程需要通过自行开发的C语言软件编译器实现,该C语言软件编译器需要根据建立的API接口函数将C代码编译为汇编代码,而由于C语言为高级语言,该C语言软件编译器的开发难度和复杂度远大于汇编语言编译器,若使用该方法进行芯片指令验证,由于开发难度和开发时间,会提高芯片验证成本并降低验证效率。并且,虽然PSS工具可以通过处理上述PSS模型生成具有随机参数的C代码,但C语言是高级语言,经C语言软件编译器编译C代码之后,得到的汇编代码会相对于原C代码一些参数特性会被编译器隐藏,即生成的汇编代码中部分参数将被编译器指定,导致该汇编代码验证芯片指令会导致指令验证的完备性不足。
作为一种示例,API接口函数为下述代码:
uint32_t asm_cp(uint32_t s1, uint32_t s2)
{
register uint32_t dst;
asm volatile("cp %0,[%1],[%2] \n\t"
: "=r" (dst)
: "r" (s1), "r" (s2)
: "memory");
return dst;
}
通过PSS工具对调用上述API接口函数的PSS模型进行处理,得到的随机C代码如下,其中0xaaaa和0x5555是PSS工具生成的随机参数值:
uint32_t dst;
dst = asm_cp(0xaaaa, 0x5555);
通过C语言软件编译器对上述C代码编译得到的汇编代码如下:
mov r2, 0xaaaa;
mov r3, 0x5555;
cp r2, [r2], [r3];
可见,C语言软件编译器将C代码转换为汇编代码时,会自动选择通用寄存器r2和r3,这样一来,即使PSS模型及PSS工具可生成针对s1和s2随机参数0xaaaa和0x5555的C代码,但是,将该C代码编译后得到的汇编代码的通用寄存器却是C语言软件编译器自行指定的,无法通过PSS工具随机,从而导致芯片指令验证的完备性不足。
而选用本发明的上述实施例,目标PSS模型的预期编程语言为汇编语言,因此,PSS工具直接生成的代码为随机的汇编代码,不再需要C语言软件编译器的参与,因此,并不会出现上述编译器自行指定寄存器的情况,提高了芯片指令验证的完备性。并且,本发明也不需要自行开发C语言软件编译器,使得该汇编代码生成方法实现难度低,降低芯片指令验证的成本并提高了芯片指令验证的效率。
可以理解的是,代码主要由函数和函数的参量组成,对于汇编语言,其函数为汇编指令,而对于目标代码段,函数是以PSS工具所支持的语言,如DSL语言,编写的函数,并且如前述分析,为实现生成随机的汇编代码,目标代码段中的参量应当为变量。
因此,若要PSS工具根据对应关系生成目标代码段对应的目标汇编代码,则需要确定出目标代码段中的函数以及变量与汇编语言的汇编代码的对应关系,基于此,本发明还提供了一种汇编代码生成方法,其中,目标代码段与预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系,如图2所示,方法包括:
S201,获取携带有预期编程语言标志符和目标代码段的目标PSS模型。
此步骤与S101相同,具体请参见S101的相关描述,此处不再赘述。
S202,通过PSS工具根据预期编程语言标志符确定预先针对目标代码段与预期编程语言之间的对应关系。
此步骤与S102相同,具体请参见S102的相关描述,此处不再赘述。
S203,从目标代码段中获取目标指令标识以及每个目标指令标识的变量。
S204,利用PSS工具分别随机生成每个变量的变量值。
S205,通过PSS工具根据第一对应关系,分别生成每个目标指令标识对应的目标汇编代码。
其中,在S203中,目标代码段作为一段代码,其应该具有函数和数据,由于目标代码段中的函数与汇编代码中的汇编指令存在对应关系,因此目标代码段中的函数视为该函数对应的汇编指令的标识,因此本文中将目标代码段中的函数称为目标指令标识。目标代码段的代码为“mov {{reg1}}, {{a}}”为例,其中mov{}即为目标代码段的目标指令标识,reg1和a即为目标指令标识mov{}的变量。
其中,在S204中,如前所述,PSS工具处理目标PSS模型的过程实际上也包括为目标代码段的变量随机赋值的过程,在确定出PSS工具需要赋值的变量的基础上,利用PSS工具能够为每个目标指令标识的变量随机生成其对应的变量值。示例性的,对于上述寄存器变量reg1可为其随机生成变量值r3,也可以为其随机生成r1-r9中的其他值,对于上述变量a,可为其随机生成变量值1234,也可以为其随机生成其他整型数值。
其中,在S205中,目标汇编代码中的汇编指令与目标指令标识存在第一对应关系,且汇编代码中的参数的参数值与目标指令标识的变量的变量值相同。示例性的,仍以目标代码段如下所示为例:
exec body ASM = ”””
mov {{reg1}}, {{a}}
ld.di {{reg2}}, {{reg1}}
”””;
目标代码段中存在两个目标指令标识,分别为目标指令标识mov和ld.di,假设第一对应关系中mov和ld.di均对应于汇编指令mov,并且PSS工具为变量reg1随机生成变量值r3,为变量a随机生成变量值1234,为变量reg2随机生成变量值r5,则生成的汇编代码如下所示:
mov r3, 1234
mov r5, r3
其中,汇编代码mov r3 1234中的汇编指令mov与目标指令标识mov存在第一对应关系,且参数r3的参数值与目标指令标识mov的变量reg1的变量值相等,参数1234的参数值与目标指令标识mov{}的变量a的变量值相等。
汇编代码mov r5 r3中的汇编指令mov与目标指令标识ld.di{}存在第一对应关系,且参数r5的参数值与目标指令标识ld.di{}的变量reg2的变量值相等,参数r3的参数值与目标指令标识ld.di{}的变量reg1的变量值相等。
该实施例中,目标代码段与预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系,也即目标代码段中的函数与目标汇编代码的汇编指令。该第一对应关系可以指导PSS工具如何根据目标代码段的函数(即目标指令标识)生成目标汇编代码中的汇编指令。
并且,该实施例中目标汇编代码的参数的参数值与目标汇编代码中的变量的变量值相等,因此该实施例中能够视为将目标汇编代码中的变量作为目标汇编代码中汇编指令的参数。又由于在上述S204中,PSS工具为每个变量生成了变量值,因此,通过PSS工具生成的汇编代码中的参数的参数值具有一定的随机性,即该实施例能够生成随机化的汇编代码。
选用该实施例,根据对应关系使得PSS工具根据目标PSS模型的目标代码段的目标指令标识和变量,获得汇编指令和随机生成的参数值,从而得到随机生成的目标汇编代码。通过该对应关系,使得PSS工具在处理目标PSS模型时可以高效生成随机的目标汇编代码。
实际上,PSS 2.0标准中,已经定义了以C、C++和SystemVerilog预期编程语言的函数与PSS的目标代码段的函数的对应关系。具体的,PSS模型中目标代码段的函数定义为:
Figure 758343DEST_PATH_IMAGE001
而对应到预期编程语言的函数为:
Figure 144325DEST_PATH_IMAGE002
但是,本发明实施例中的预期编程语言为汇编语言,而汇编语言的函数不支持上述分层路径H,也不支持参数
Figure 392904DEST_PATH_IMAGE003
,因此,无法通过分层路径H以及参数
Figure 256954DEST_PATH_IMAGE003
的方式建立目标代码段中的函数(即目标指令标识)和汇编指令之间的第一对应关系。基于此,在一种可能的实施例中,目标指令标识为函数名称,并且第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令的指令名称相同。
具体的,目标代码段的各目标指令标识为该目标代码段的各函数的函数名称,而第一对应关系中每个目标指令标识与目标指令标识对应的汇编指令相同,即目标代码段的函数的函数名称与汇编指令相同。示例性的,若目标代码段的函数为f(),其函数名称(即目标指令标识)为f,则该目标指令标识对应的汇编指令为f。在此第一对应关系中,目标代码段的函数名称直接对应到目标汇编代码中的汇编指令,而不使用PSS标准中基于分层路径建立的的代码段中的函数与编成语言中的函数对应关系。
选用该实施例,提供了一种可用于目标代码段到汇编语言的函数对应关系(即第一对应关系),PSS工具可以根据该第一对应关系根据目标代码段的函数直接生成其对应的目标汇编代码中的汇编指令,进一步的提高了随机的汇编代码生成的效率。
可以理解的是,PSS工具所支持的语言和汇编语言不同,而不同语言中定义的数据类型可能不同,以PSS工具是以DSL(领域特定语言,domain-specific language)编写的情况为例,DSL语言中定义有整型数据类型,而汇编语言中并未定义整型数据类型,因此,如果直接将目标代码段中的变量作为汇编代码中的参量可能会导致汇编代码中包括未定义的数据类型,进而导致生成的汇编代码无法正常运行。
因此对于PSS工具所支持的语言和汇编语言中定义的数据类型不同的情况,需要PSS根据目标代码段中的变量的变量值数据类型确定汇编代码中各参数的参数值数据类型,以使得各参数的参数值数据类型为汇编语言中定义的数据类型,因此在该情况下,目标代码段与汇编代码之间的对应关系不仅需要包括第一对应关系,还需要包括变量值数据类型与参数数据类型之间的第二对应关系。基于此,本发明还提供了一种汇编代码生成方法,如图3所示,方法包括:
S301,获取携带有预期编程语言标志符和目标代码段的目标PSS模型。
此步骤与S101相同,具体请参见S101的相关描述,此处不再赘述。
S302,通过PSS工具根据预期编程语言标志符确定预先针对目标代码段与预期编程语言之间的对应关系。
此步骤与S102相同,具体请参见S102的相关描述,此处不再赘述。
S303,从目标代码段中获取目标指令标识以及每个目标指令标识的变量。
此步骤与S203相同,具体请参见S203的相关描述,此处不再赘述。
S304,利用PSS工具分别随机生成每个变量的变量值。
此步骤与S204相同,具体请参见S204的相关描述,此处不再赘述。
S305,通过PSS工具根据第一对应关系和第二对应关系,分别生成每个目标指令标识对应的目标汇编代码。
其中,在S305中,汇编代码中参数的参数数据类型与目标指令标识的变量的变量值数据类型存在第二对应关系。
如前所述第一对应关系是关于目标代码段中的函数名称与目标汇编代码的汇编指令的对应关系。而第二对应关系是关于目标代码段中变量值数据与汇编代码中参数数据类型的关系。基于此,PSS工具可以根据第一对应关系确定目标代码段的函数名称(目标指令标识)对应的目标汇编代码的汇编指令,并且PSS工具可以根据第二对应关系确定目标代码段的函数(目标指令标识表示的函数)的变量值数据类型对应的目标汇编代码的参数值数据类型,进而以确定得到的汇编指令和参数值数据类型随机生成目标代码段对应的目标汇编代码。
由于目标PSS模型在生成时可以使用多种语言,而不同的语言使用的数据类型有一定的差别,因此,第二对应关系可以根据目标PSS模型所使用的编写语言的不同而不同。
因此,在一种可能的实施例中,若目标代码段的编写语言为DSL语言,则第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,第二立即数数据类型的立即数的取值大于0;和/或变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,第三立即数据类型的立即数的取值为0或1。
具体的,如表1所示,若目标代码段中的变量值数据类型为整型数据类型(如bit(1-64bit domain)、int(1-64bit domain)等数据类型),其在第二对应关系中与目标汇编代码中参数数据类型中的第一立即数数据类型对应。
若目标代码段中的变量值数据类型为枚举数据类型如enum等数据类型,其在第二对应关系中与目标汇编代码中参数数据类型中的第二立即数数据类型对应,该第二立即数数据类型为大于0的立即数。
若目标代码段中的变量值数据类型为布尔数据类型如enum等数据类型,其在第二对应关系中与目标汇编代码中参数数据类型中的第三立即数数据类型对应,该第三立即数数据类型的立即数取值为0或1。
表1
变量值数据类型 参数数据类型
string 不支持
bool 无符号立即数0或1(0:表示false,1:表示true)
bit(1-64bit domain) 立即数
int(1-64bit domain) 立即数
arrays 不支持
struct 不支持
enum 从0开始的立即数
选用该实施例,提供了一种目标代码段各数据类型到目标汇编代码中各数据类型的对应关系,使得PSS工具可以根据上述第二对应关系高效随机生成目标代码段对应的目标汇编代码。
可以理解的是,由于汇编语言仅仅支持整型立即数,因此,目标汇编代码的参数数据类型仅与目标代码段的变量值数据类型:bool、bit、int、enum等类型有第二对应关系,对于如string、array、struct等数据类型的数据,不能直接确定出第二对应关系,因此,当在目标代码段使用string、array、struct等变量值数据类型的数据时,在获取目标代码段时需要将这些数据通过第二对应关系中包含的变量值数据类型的方式展开,示例性的:
component top {
enum G_REGS {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9};
struct S {
rand int a[2];
rand int b;
}
action A {
rand S s1;
rand G_REGS reg1, reg2;
exec body ASM = ”””
mov {{reg1}}, {{s1.a[0]}}
mov {{reg2}}, {{s1.a[1]}}
cp [cm:{{reg2}}], [cm:{{reg1}}], {{s1.b}}
”””;
}
}
上述目标PSS模型的代码中使用了struct数据类型,这个struct数据类型中定义了一个array数据类型的变量a,因此,在目标代码段exec body ASM = ‘’’’……‘’’’之间描述上述struct数据类型和array数据类型时,需要将它们展开为s1.a[0]、s1.a[1]和s1.b这种基本的上述第二对应关系中包含的变量值数据类型,而不能直接使用s1或s1.a。通过上述展开,PSS工具能够将上述目标代码段随机生成为目标汇编代码,如下:
mov r3, 1234
mov r6, 5678
cp [cm:r6], [cm:r3], 90
其中,r3和r6是PSS工具随机生成的通用寄存器,1234、5678和90是PSS工具随机生成的整型立即数。
选用该实施例,可以将无法直接根据第二对应关系生成参数数据类型的变量值数据类型,通过数据展开的方式转换为第二对应关系中包含的变量值数据类型,以此使得PSS工具实现目标代码段的变量值数据类型到目标汇编代码的参数数据类型的转换,进而随机生成目标汇编代码,提高了汇编代码生成方法的适用性。
参见图4,图4所示为本发明实施例提供的一种汇编代码生成装置的结构示意图,装置包括:
模块获取模块401,用于获取携带有预期编程语言标志符和目标代码段的目标便携式测试和激励标准PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
关系确定模块402,用于通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系;
代码生成模块403,用于通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码。
在一种可能的实施例中,所述目标代码段与所述预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系;
所述代码生成模块403,包括:
变量值生成子模块,用于利用PSS工具分别随机生成每个所述变量的变量值;
目标汇编代码生成子模块,用于通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中的汇编指令与所述目标指令标识存在所述第一对应关系,且所述目标汇编代码中的参数的参数值与所述目标指令标识的所述变量的变量值相同。
在一种可能的实施例中,所述目标代码段与目标汇编代码之间的对应关系还包括:变量值数据类型与参数数据类型之间的第二对应关系;
目标汇编代码生成子模块,具体用于通过所述PSS工具根据所述第一对应关系和所述第二对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中参数的参数数据类型与所述目标指令标识的所述变量的变量值数据类型存在所述第二对应关系。
在一种可能的实施例中,所述第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或
所述变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,所述第二立即数数据类型的立即数的取值大于0;和/或
所述变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,所述第三立即数据类型的立即数的取值为0或1。
在一种可能的实施例中,所述目标指令标识为函数名称,并且所述第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令相同。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取携带有预期编程语言标志符和目标代码段的目标PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系;
通过所述PSS工具根据所述对应关系随机生成所述目标代码段对应的目标汇编代码。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一汇编代码生成方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一汇编代码生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种汇编代码生成方法,其特征在于,所述方法包括:
获取携带有预期编程语言标志符和目标代码段的目标便携式测试和激励标准PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系,所述目标代码段与所述预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系;
从所述目标代码段中获取目标指令标识以及每个所述目标指令标识的变量;
利用PSS工具分别随机生成每个所述变量的变量值;
通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中的汇编指令与所述目标指令标识存在所述第一对应关系,且所述目标汇编代码中的参数的参数值与所述目标指令标识的所述变量的变量值相同。
2.根据权利要求1所述的方法,其特征在于,所述目标代码段与目标汇编代码之间的对应关系还包括:变量值数据类型与参数数据类型之间的第二对应关系;
所述通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,包括:
通过所述PSS工具根据所述第一对应关系和所述第二对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中参数的参数数据类型与所述目标指令标识的所述变量的变量值数据类型存在所述第二对应关系。
3.根据权利要求2所述的方法,其特征在于,所述第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或
所述变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,所述第二立即数数据类型的立即数的取值大于0;和/或
所述变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,所述第三立即数据类型的立即数的取值为0或1。
4.根据权利要求1所述的方法,其特征在于,所述目标指令标识为函数名称,并且所述第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令相同。
5.一种汇编代码生成装置,其特征在于,所述装置包括:
模块获取模块,用于获取携带有预期编程语言标志符和目标代码段的目标便携式测试和激励标准PSS模型,所述预期编程语言标志符表示所述目标代码段的预期编程语言为汇编语言;
关系确定模块,用于通过PSS工具根据所述预期编程语言标志符确定预先针对所述目标代码段与所述预期编程语言之间的对应关系,所述目标代码段与所述预期编程语言之间的对应关系包括:目标指令标识与汇编指令之间的第一对应关系;
代码生成模块,包括:
变量值生成子模块,用于利用PSS工具分别随机生成每个所述变量的变量值;
目标汇编代码生成子模块,用于通过所述PSS工具根据所述第一对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中的汇编指令与所述目标指令标识存在所述第一对应关系,且所述目标汇编代码中的参数的参数值与所述目标指令标识的所述变量的变量值相同。
6.根据权利要求5所述的装置,其特征在于,所述目标代码段与目标汇编代码之间的对应关系还包括:变量值数据类型与参数数据类型之间的第二对应关系;
目标汇编代码生成子模块,具体用于通过所述PSS工具根据所述第一对应关系和所述第二对应关系,分别生成每个所述目标指令标识对应的目标汇编代码,其中,所述汇编代码中参数的参数数据类型与所述目标指令标识的所述变量的变量值数据类型存在所述第二对应关系。
7.根据权利要求6所述的装置,其特征在于,所述第二对应关系中变量值数据类型中的整型数据类型和位数据类型与参数数据类型中的第一立即数数据类型对应;和/或
所述变量值数据类型中的枚举数据类型与参数数据类型中的第二立即数数据类型对应,所述第二立即数数据类型的立即数的取值大于0;和/或
所述变量值数据类型中的布尔数据类型与参数数据类型中的第三立即数数据类型对应,所述第三立即数据类型的立即数的取值为0或1。
8.根据权利要求5所述的装置,其特征在于,所述目标指令标识为函数名称,并且所述第一对应关系中每个目标指令标识与所述目标指令标识对应的汇编指令相同。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN202210838239.0A 2022-07-18 2022-07-18 一种汇编代码生成方法、装置及电子设备 Active CN114995799B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210838239.0A CN114995799B (zh) 2022-07-18 2022-07-18 一种汇编代码生成方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210838239.0A CN114995799B (zh) 2022-07-18 2022-07-18 一种汇编代码生成方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN114995799A CN114995799A (zh) 2022-09-02
CN114995799B true CN114995799B (zh) 2022-10-25

Family

ID=83021046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210838239.0A Active CN114995799B (zh) 2022-07-18 2022-07-18 一种汇编代码生成方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114995799B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106329550A (zh) * 2016-09-20 2017-01-11 国网重庆市电力公司电力科学研究院 一种适用于pscad电磁暂态仿真的pss模型
CN106844288A (zh) * 2015-12-07 2017-06-13 阿里巴巴集团控股有限公司 一种随机字符串生成方法及装置
CN110018823A (zh) * 2018-12-11 2019-07-16 北京奇点机智科技有限公司 交互式应用程序的处理方法及系统、生成方法及系统
US11144693B1 (en) * 2019-11-27 2021-10-12 Cadence Design Systems, Inc. Method and system for generating verification tests at runtime
CN114117349A (zh) * 2021-11-26 2022-03-01 中国电力科学研究院有限公司 电力系统随机变量概率分析方法、系统、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839420B2 (en) * 2009-05-01 2014-09-16 Adobe Systems Incorporated Validation of function call parameters
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US9536093B2 (en) * 2014-10-02 2017-01-03 Microsoft Technology Licensing, Llc Automated verification of a software system
DE102015120314A1 (de) * 2015-11-24 2017-05-24 Pilz Gmbh & Co. Kg Verfahren zum Programmieren einer Sicherheitssteuerung
CN109814934B (zh) * 2019-01-31 2022-05-06 安谋科技(中国)有限公司 数据处理方法、装置、可读介质和系统
CN113656042B (zh) * 2021-08-24 2023-07-21 北京奇艺世纪科技有限公司 一种代码生成方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844288A (zh) * 2015-12-07 2017-06-13 阿里巴巴集团控股有限公司 一种随机字符串生成方法及装置
CN106329550A (zh) * 2016-09-20 2017-01-11 国网重庆市电力公司电力科学研究院 一种适用于pscad电磁暂态仿真的pss模型
CN110018823A (zh) * 2018-12-11 2019-07-16 北京奇点机智科技有限公司 交互式应用程序的处理方法及系统、生成方法及系统
US11144693B1 (en) * 2019-11-27 2021-10-12 Cadence Design Systems, Inc. Method and system for generating verification tests at runtime
CN114117349A (zh) * 2021-11-26 2022-03-01 中国电力科学研究院有限公司 电力系统随机变量概率分析方法、系统、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Design and Research of Virtual Assembly System for Machine Tool Based on Maxscript Language";Li Fuping 等;《2015 International Conference on Computer Science and Mechanical Automation》;20160107;263-266 *
"嵌入式处理器P2020机器码程序到C语言源程序的溯源方法";谢文光 等;《航空学报》;20210422;第42卷(第9期);1-16 *

Also Published As

Publication number Publication date
CN114995799A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
US8918678B2 (en) Functional testing of a processor design
CN111638906B (zh) 一种软件开发工具包sdk接入方法、装置和系统
CN111124480B (zh) 应用程序包的生成方法、装置、电子设备及存储介质
CN109871312B (zh) 一种接口测试方法、装置、设备及可读存储介质
US20210103514A1 (en) Reusable test cases for identifiable patterns
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
US9396097B2 (en) Methods, circuits, devices, systems and associated computer executable code for testing software code
JP5923636B2 (ja) モデル検査のためのループ抽象化
US20180129490A1 (en) Object ordering preservation during lto link stage
US20180275976A1 (en) Link time optimization in presence of a linker script using path based rules
CN114995799B (zh) 一种汇编代码生成方法、装置及电子设备
CN112561690A (zh) 信用卡分期业务接口的测试方法、系统、设备及存储介质
CN109189671B (zh) 逐层夹逼式变量定位方法、系统及终端设备
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN116578282A (zh) 代码生成方法、装置、电子设备及介质
US9436587B2 (en) Test context generation
CN110765008A (zh) 一种数据处理方法及装置
US11057416B2 (en) Analyze code that uses web framework using local parameter model
CN109408063B (zh) 基于虚拟机的指令插桩方法及装置
CN113806231A (zh) 一种代码覆盖率分析方法、装置、设备和介质
CN112612474A (zh) 产品移植方法、装置、存储介质和电子设备
CN116700840B (zh) 文件执行方法、装置、电子设备及可读存储介质
CN113254328B (zh) 白盒测试方法、系统、移动终端及存储介质
CN116414678A (zh) 一种测试用例生成方法、装置、设备以及存储介质
CN117149645A (zh) 一种检测三方代码缺失方法及系统

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