CN116501332B - 语言转换方法、装置、设备及存储介质 - Google Patents

语言转换方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116501332B
CN116501332B CN202310788555.6A CN202310788555A CN116501332B CN 116501332 B CN116501332 B CN 116501332B CN 202310788555 A CN202310788555 A CN 202310788555A CN 116501332 B CN116501332 B CN 116501332B
Authority
CN
China
Prior art keywords
assembly
assembly instruction
level language
global variable
storage space
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
CN202310788555.6A
Other languages
English (en)
Other versions
CN116501332A (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.)
Niuxin Semiconductor Shenzhen Co ltd
Original Assignee
Niuxin Semiconductor Shenzhen 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 Niuxin Semiconductor Shenzhen Co ltd filed Critical Niuxin Semiconductor Shenzhen Co ltd
Priority to CN202310788555.6A priority Critical patent/CN116501332B/zh
Publication of CN116501332A publication Critical patent/CN116501332A/zh
Application granted granted Critical
Publication of CN116501332B publication Critical patent/CN116501332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

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)
  • Stored Programmes (AREA)

Abstract

本申请的实施例公开了一种语言转换方法、装置、设备及存储介质。方法包括:获取含有多条汇编指令的待转换汇编文本;获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息;基于每条汇编指令的类型确定所述每条汇编指令向指定高级语言进行转换的转换格式;基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句。本申请的实施例能够通过定义全局变量信息,提高了转换得到的高级语言对应的程序的运行速率,并且按照每条汇编指令对应的转换格式进行转换,进而提高了汇编指令向高级语言转换准确率,且使得转换过程更加方便快捷,得到了在目标平台可执行的高级语言语句。

Description

语言转换方法、装置、设备及存储介质
技术领域
本申请涉及计算机语言编译领域,具体涉及一种语言转换方法及装置、电子设备、以及计算机可读存储介质。
背景技术
当前平台运行的可执行文件若想在另外一个平台进行运行,就需要对当前平台上的语言进行语言转换。当前的跨平台的语言转换方法,一般是通过建立当前平台的虚拟机,然后导入当前平台的二进制可执行文件,然后在目标平台运行;或,利用当前平台的反汇编工具把可执行文件反汇编成汇编代码,然后再把汇编代码转化成高级语言代码,然后把高级语言代码在目标平台编译成可执行代码,然后在目标平台执行此可执行代码。但是,如果要在当前平台建立虚拟机,实现过程复杂,且不具有普适性,并且语言转换效率过低,得到的语言准确性低,可能所得到的高级语言无法在目标平台执行。
发明内容
为解决上述技术问题,本申请的实施例提供了一种语言转换方法及装置、电子设备、以及计算机可读存储介质。
根据本申请实施例的一个方面,提供的一种语言转换方法,包括:获取含有多条汇编指令的待转换汇编文本;获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息;基于每条汇编指令的类型确定所述每条汇编指令向指定高级语言进行转换的转换格式;基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,所述获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,包括:获取汇编系统中的多种类型的存储空间;针对每种类型的存储空间,对所述存储空间进行全局化定义,得到所述存储空间对应的全局变量;基于所述每种类型的存储空间对应的全局变量得到所述全局变量信息。
根据本申请实施例的一个方面,所述对所述存储空间进行全局化定义,得到所述存储空间对应的全局变量,包括:若所述存储空间为寄存器类型,则将所述寄存器类型的存储空间定义为全局变量;若所述存储空间为内存空间类型,则通过数组形式将所述内存空间类型的存储空间定义为全局变量;若所述存储空间为程序空间类型,则通过数组形式将所述程序空间类型的存储空间定义为全局变量。
根据本申请实施例的一个方面,所述若所述存储空间为寄存器类型,则将所述寄存器类型的存储空间定义为全局变量,包括:若所述存储空间为预设功能的寄存器,则定义所述预设功能的寄存器的偏移地址,将所述偏移地址作为全局变量。
根据本申请实施例的一个方面,所述基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,包括:针对每条汇编指令,获取所述汇编指令中含有的存储空间,通过全局变量信息确定所述汇编指令中含有的存储空间对应的全局变量;以及,基于所述汇编指令的转换格式和所述汇编指令中含有的存储空间对应的全局变量,对所述汇编指令进行转换,得到所述汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,所述对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,包括:获取每条汇编指令在所述待转换汇编文本中的汇编顺序;基于所述汇编顺序依次对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,在所述基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句之后,所述方法还包括:对所述每条汇编指令对应的高级语言语句进行优化,得到优化后的每条汇编指令对应的高级语言语句;基于所述优化后的每条汇编指令对应的高级语言语句生成目标平台的可执行文件,以使所述目标平台执行所述可执行文件。
根据本申请实施例的一个方面,提供了一种语言转换装置,所述装置包括:汇编文本获取模块,用于获取含有多条汇编指令的待转换汇编文本;全局变量获取模块,用于获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息;转换格式确定模块,用于基于每条汇编指令的类型确定所述每条汇编指令向指定高级语言进行转换的转换格式;语言转换模块,用于基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的语言转换方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的语言转换方法。
在本申请的实施例所提供的技术方案中,通过获取包含有多条汇编指令的待转换汇编文本,并获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,进而使得在后续的高级语言转换过程中可以直接使用定义好的全局变量信息,这样通过预先定义好的全局变量信息,减少了汇编指令得到的高级语言的转换过程中的频繁确定变量信息的过程,从而提高了转换效率。
并且,基于每条汇编指令的类型确定每条汇编指令向指定高级语言进行转换的转换格式,然后再基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行语言转换,这样按照每条指令的转换格式进行语言转换,无需搭建虚拟机,避免了搭建虚拟机实现转换的复杂过程,进一步提高了转换效率,同时通过按照每条汇编指令对应的转换格式将汇编指令转换为高级语言,也在一定程度上提高了转换准确率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一示例性实施例示出的语言转换的实施环境示意图。
图2是本申请的一示例性实施例示出的语言转换方法的流程图。
图3是图2所示实施例中的步骤S220在一示例性的实施例中的流程图。
图4是图3所示的实施例中的步骤S320在一示例性的实施例中的流程图。
图5是图2所示的实施例中的步骤S240在一示例性的实施例中的流程图。
图6是图2所示的实施例中的步骤S230在一示例性的实施例中的流程图。
图7是本申请的另一示例性实施例示出的一种语言转换方法的流程图。
图8是本申请的一示例性实施例示出的语言转换装置的框图。
图9是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先需要说明的是,汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。但计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数或机器语言。因为汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还是保持了机器语言优秀的执行效率,因为他的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。高级语言相对低级语言有较高的可读性,更易理解。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效的编程语言的追求。
当前的跨平台的语言转换方法,一般是通过建立当前平台的虚拟机,然后导入当前平台的二进制可执行文件,然后在目标平台运行;或,利用当前平台的反汇编工具把可执行文件反汇编成汇编代码,然后再把汇编代码转化成高级语言代码,然后把高级语言代码在目标平台编译成可执行代码,然后在目标平台执行此可执行代码。但是,如果要在当前平台建立虚拟机,实现过程复杂,且不具有普适性,并语言转换效率过低,得到的语言准确性低,导致得到的高级语言无法在目标平台执行。
为了解决上述问题,本申请的实施例分别提出一种语言转换方法、语言转换装置、电子设备、计算机可读存储介质以及计算机程序产品,以下将对这些实施例进行详细介绍。
请参阅图1,图1是本申请的实施例涉及的一种实施环境的示意图。该实施环境包括终端110和服务器120,其中,终端110和服务器120通过有线或者无线方式进行通信。
终端110用于支持单片机汇编指令的编辑和执行,用户在终端110中输入待进行转换的单片机汇编文本后,终端110生成语言转换请求并发送给服务器120。
服务器120接收终端110发送的语言转换请求后,读取含有多条汇编指令的待转换汇编文本,以及获取用于表征对汇编系统重的存储空间进行全局化定义的全局变量信息,然后基于每条汇编指令的转换格式和全局变量信息,对汇编文本中的每条汇编指令向高级语言进行转换的转换格式,然后基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句。
需要说明的是,终端110可以是智能手机、平板电脑、笔记本电脑或者可穿戴设备等任意支持无码可视化配置功能的电子设备,但并不限于此,例如终端110还可以是车载终端、飞行器等应用于特殊领域的设备。终端110可通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与服务器120进行通信,或者通过有线网络与服务器120通信,本处也不对此进行限制。
服务器120例如可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,在此也不进行限制。
应理解,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术也是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。
图2是本申请的一示例性的实施例示出的一种语言转换方法的流程图。该方式适用于图1所示的实施环境,并由图1所示实施环境中的服务器120具体执行。该方法也可以适用于其它的实施环境,并由其它的实施环境中的设备执行,本实施例并不对此进行限制。
以下将以服务器作为示例性的执行主体对本申请实施例提出的方法进行详细描述。如图2所示,在一示例性的实施例中,该方法包括步骤S210和步骤S240,详细介绍如下:
步骤S210,获取含有多条汇编指令的待转换汇编文本。
本实施例中的汇编文本是指前述面向单片机的机器语言的文本,是用一些容易理解和记忆的缩写单词来代替一些特定的指令,且,机器语言的高效的执行效率,因为它的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。
在本实施例中,获取到待转换的汇编文本时,将该汇编文本进行解析得到多个汇编指令,汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end),汇编指令同机器指令一一对应。每一种CPU都有自己的汇编指令集。
步骤S220,获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息。
首先需要说明的是,全局变量是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
具体的,在本实施例中,对待转换的汇编文本中的汇编指令向目标平台指定的高级语言转换过程中,先获取用于表征对该汇编文本对应的单片机的存储空间进行全局化定义的全局变量信息,以便于在对汇编指令向高级语言转换过程中直接使用定义好的全局变量。
步骤S230,基于每条汇编指令的类型确定每条汇编指令向指定高级语言进行转换的转换格式。
在本实施例中,对当前平台的指令集进行分类处理,得到多个指令类别,例如常见的数据传输指令,算术指令,逻辑指令,布尔指令以及程序分支指令等。示例性的,遍历待转变汇编文本中的多条汇编指令,以确定该多条汇编指令各自对应的指令类别,以确定每条汇编指令向指向高级语言进行转换的转换格式。
步骤S240,基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句。
具体的,在确定了当前平台上待转换的汇编文本中的每条汇编指令向目标平台指定的高级语言转换的格式以及汇编系统中存储空间进行全局化定义的全局变量信息后,依次对待转换的汇编文本中的汇编指令进行向指定高级语言的转换,得到每条汇编指令对应的高级语言语句。
在一些可实现的实施例中,在将当前平台上的汇编指令转换为高级语言的过程中,先有用于表征当前汇编系统中的存储空间进行全局化定义的全局变量信息建立对应汇编指令的空间容器,再根据该汇编指令对应的转换格式对该汇编指令进行语言转换,得到该汇编指令对应的高级语言语句。
在本实施例中,通过获取含有多条汇编指令的待转换汇编文本,获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,以此,建立当前平台上待转换汇编系统的数据架构,以使得在后续的汇编指令向高级语言转换过程中全局变量是可以被本程序所有对象或函数引用,然后基于每条汇编指令的类型确定每条汇编指令向高级语言进行转换的格式,再基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条还会被指令对应的高级语言语句,从而实现高效快捷的将汇编指令转换为高级语言语句,不仅降低了汇编语言的转换难度,还提高了所得到的高级语言语句的可执行性。
进一步的,基于上述实施例,请参照图3,在本申请所提供的其中一个示例性的实施例中,上述获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息的具体实现过程还包括步骤S310至步骤S330,详细介绍如下:
步骤S310,获取汇编系统中的多种类型的存储空间。
一般情况下,汇编指令是针对单片机的操作而言,在本实施例中,以汇编语言是针对某一类型的单片机为例。示例性的,单片机的存储空间可能涉及的存储空间实体有内部RAM空间,外部RAM空间(MOVX访问的地址),外部程序空间(MOVC访问的地址)。
步骤S320,针对每种类型的存储空间,对存储空间进行全局化定义,得到存储空间对应的全局变量。
具体的,针对每种类型的存储空间按照预定的转换格式进行全局化定义,以分别得到每种类型的存储空间各自对应的全局变量。以此实现对存储空间的全局化定义,实现了对当前平台的汇编指令的数据架构的搭建,使得在后续的汇编文本转换得到的高级语言能够在目标平台正常执行。
步骤S330,基于每种类型的存储空间对应的全局变量得到全局变量信息。
具体的,承接上述实施例,在对单片机中的每种类型存储空间按照的全局变量转换格式转换得到对应的全局变量,以基于隔离存储空间对应的全局变量得到全局变量信息。
示例性的,在一些可实现的实施例中,将带有特殊功能的寄存器转换为对应的全局变量数组,例如,先将特殊功能的寄存器定义为数组的偏移地址,然后通过数组访问该寄存器。
例如访问DPL,相当于访问g_RAM_INNER[DPL]:
#define P0=0x80;
#define P1=0x90;
#define P2=0xA0;
#define P3=0xB0;
#define ACC=0xE0;
#define A=0xE0;
#define B=0xF0;
#define PSW=0xD0;
#define SP=0x81;
#define DPL=0x82;
#define DPH=0x83;
#define IE=0xA8;
如上述的代码,预先定义特殊功能寄存器为数组的偏移地址“#define DPL=0x82”,然后可以直接将访问指令“访问DPL”转换为对应的高级语言语句“g_RAM_INNER[DPL]”。
在本实施例中,通过将当前平台的汇编系统中的每种类型存储空间按照预设的转换格式进行全局化定义,得到每种类型存储空间对应的全局变量,以基于每种类型存储空间对应的全局变量得到当前汇编系统的全局变量信息,以为后续将汇编指令转换为高级语言搭建对应的数据架构,使得转换得到的高级语言能够在目标平台正常执行。
进一步的,基于上述实施例,如图4所示,在本申请所提供的其中一个示例性的实施例中,上述对存储空间进行全局化定义,得到存储空间对应的全局变量的具体实现过程还可以包括步骤S410至步骤S430,详细介绍如下:
步骤S410,若存储空间为寄存器类型,则将寄存器类型的存储空间定义为全局变量。
在本实施例中,在当前平台的汇编系统中,将寄存器类型的存储空间定义为全局变量,也就是说,在将汇编指令转换为高级语言的过程中,若该汇编指令中存在寄存器,则将该寄存器定义为全局变量,并利用全局变量建立空间容器。
步骤S420,若存储空间为内存空间类型,则通过数组形式将内存空间类型的存储空间定义为全局变量。
在本实施例中,在当前平台的汇编系统中,将内存空间类型的存储空间定义为全局变量数组,也就是说,在将汇编指令转换为高级语言语句的过程中,若汇编指令中包括内存类型的内存空间,则将该内存类型的存储空间转换为全局变量数组。
示例性的,对于位的操作,可以先定义位的偏移地址,然后通过宏bitSet ,bitGet来定义位的操作:
#define IT0 = 0x88
#define IE0 = 0x89
#define IT1 = 0x8A
#define IE1 = 0x8B
#define CY = 0xD7
#define AC = 0xD6
#define F0 = 0xD5
#define RS1 = 0xD4
#define RS0 = 0xD3
#define bitSet(bAddr, val)if(bAddr<0x80){\
if(val){\
g_RAM_INNER[0x20 + bAddr / 8] |= (1<<(bAddr % 8));\
}else{\
g_RAM_INNER[0x20 + bAddr / 8]&= ~(1<<(bAddr % 8));\
}\
}else{\
if(val){\
g_RAM_INNER[bAddr - bAddr % 8] |= (1<<(bAddr % 8));\
}else{\
g_RAM_INNER[bAddr - bAddr % 8]&= ~(1<<(bAddr % 8));\
}\
}
#define bitGet(bAddr)if(bAddr<0x80){\
return((g_RAM_INNER[0x20 + bAddr / 8]>>(bAddr % 8))&0x1);\
}else{\
return((g_RAM_INNER[bAddr- bAddr % 8]>>(bAddr % 8))&0x1);\
}
如上述代码所示,若待转换的汇编指令为“clr C”,其中,C其实对应的是PSW(程序状态寄存器)中的一个位。这个位的地址编码为0xD7,即上述定义中的数组CY。
步骤S430,若存储空间为程序空间类型,则通过数组形式将程序空间类型的存储空间定义为全局变量。
在本实施例中,在当前平台的汇编系统中,将程序空间类型的存储空间定义为全局变量数组,也就是说,在将汇编指令转换为高级语言语句的过程中,若汇编指令中包括内存类型的程序空间,则将程序空间的存储空间转换为全局变量数组。
示例性的,对于4组寄存器组R0-R7,分别对应的是内部RAM中的00H-07H,08H-0Fh,10H-17H,18H-1FH,由PSW寄存器中RS0/RS1位决定访问哪组,因此定义下面宏R(n):
#define R(n) g_RAM_INNER[((g_RAM_INNER[PSW]>>3)&0x3) ×8 + n]
在本实施例中,针对汇编系统中不同类型的存储空间定义为各自对应的全局变量,以为在汇编指令转换为高级语言的过程中,先用执行全局变量建立对应的空间容器,以实现对汇编指令向高级语言的转换,并使得转换得到的高级语言能够在目标平台正常执行。
进一步的,基于上述实施例,在本申请所提供的其中一个示例性的实施例中,上述若存储空间为寄存器类型,则将寄存器类型的存储空间定义为全局变量的具体实现过程还可以包括如下步骤,详细介绍如下:
若存储空间为预设功能的寄存器,则定义所述预设功能的寄存器的偏移地址,将所述偏移地址作为全局变量。
具体的,在当前平台的汇编系统中,将为预设功能的寄存器转换为对应的数组形式,并为该数组定义相应的偏移地址,其中,无论是表示为预设功能寄存器的数组还是数组对应的偏移地址都为全局变量。
示例性的,将为预设功能的寄存器PSW、SP、DPL、DPH以及IE定义为数组的偏移地址,以通过数组对相应的寄存器进行访问。
#define PSW=0xD0;
#define SP=0x81;
#define DPL=0x82;
#define DPH=0x83;
#define IE=0xA8;
例如,访问PSW,相当于访问g_RAM_INNER[PSW]。
在本实施例中,通过将为特殊功能的寄存器定义为数组的偏移地址,以通过数组的形式访问该为特殊功能的寄存器,从而使得汇编指令转换得到的高级语言语句在目标平台上能够正常无误的执行。
进一步的,基于上述实施例,请参照图5,在本申请所提供的其中一个示例性的实施例中,上述基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句的具体实现过程还可以包括步骤S510和步骤S520,详细介绍如下:
步骤S510,针对每条汇编指令,获取汇编指令中含有的存储空间,通过全局变量信息确定汇编指令中含有的存储空间对应的全局变量;以及
具体的,针对待转换的汇编文本中的每条汇编指令,在将汇编指令转换为对应的高级语言的过程中,先获取汇编指令中含有的存储空间,通过全局变量信息确定该汇编指令中含有的存储空间对应的全局变量,例如:汇编指令为:MOV A,DPL , 其中,DPL为特殊功能的寄存器即(为预设功能的寄存器)其数组表示为DPL,则其转换得到的高级语言语句为:g_RAM_INNER[A] = g_RAM_INNER[DPL],即将A字节的数据传输到DPL寄存器中。
步骤S520,基于汇编指令的转换格式和汇编指令中含有的存储空间对应的全局变量,对汇编指令进行转换,得到汇编指令对应的高级语言语句。
在一些可实现的实施例中,对当前平台的指令集进行分类处理,得到多种类别的指令,例如:数据传输指令,算术指令,逻辑指令,布尔指令以及程序分支指令等。并且预先设定每种类型指令对应一种高级语言的转换格式。例如,在汇编指令转换为C语言的过程中,算术指令的转换方式如下:
ADD A,#12Hu16 tmp = g_RAM_INNER[A] + 0x12;
g_RAM_INNER[A] = tmp&0xff;
PSW.C = (tmp>0ff) ? 1 : 0;
MUL ABu16 tmp = g_RAM_INNER[A] * g_RAM_INNER[B];
g_RAM_INNER[A] = tmp&0xff;
g_RAM_INNER[B] = tmp>>8;
程序分支指令:
例如,122: JZ #12H 对应的转换得到的高级语言语句为:goto 122+2+0x12跳转到当前指令存储地址+指令字节数+rel,rel为单字节有符号数。本例中当前指令存储地址即当前指令的标号,指令字节数为2,rel为0x12。示例性的,程序分支指令的转换如下:
1000:ACALL #234H
g_RAM_INNER[g_RAM_INNER[SP]] = (1000+2)&0xff;
g_RAM_INNER[g_RAM_INNER[SP]+1]= (1000+2)>>8;
g_RAM_INNER[SP] += 2;
goto (((1000+2)&0xF800)+0x234);
1567:RET u16 tmp = (g_RAM_INNER[g_RAM_INNER[SP]]<<8) + g_RAM_INNER[g_RAM_INNER[SP]-1]
g_RAM_INNER[SP] -= 2;
goto tmp;
在本实施例中,通过针对每条汇编指令,获取其中含有的存储空间,通过全局变量信息确定该存储空间对应的全局变量,并基于汇编指令对应的转换格式和对应的全局变了信息对该汇编指令进行转换,得到该汇编指令对应的高级语言语句,从而是每条汇编指令转换后对应为一个函数或标号,并且转换后的所有函数中均不带参数,从而实现高效高质量的对汇编语言向高级语言的转换。
进一步的,基于上述实施例,请参照图6,在本申请所提供的其中一个示例性的实施例中,上述对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句的具体实现过程还可以包括步骤S610和步骤S620,详细介绍如下:
步骤S610,获取每条汇编指令在待转换汇编文本中的汇编顺序;
步骤S620,基于汇编顺序依次对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句。
具体的,获取当前平台上每条汇编指令在待转换汇编文本中的汇编顺序,并按照该汇编顺序依次对每条汇编指令进行转换,得到待转换汇编文本中每条汇编指令对应的高级语言语句。例如,待转换的汇编指令如下:
mov R0, #0x0; R0 = 0
mov R1, #0x1; R1 = 1
loop:
mov A, R0; A = R0
add A,R1;A=A+R1
cjne A, #0x12, loop
其对应的转换得到的高级语言(还是以件汇编指令转换为C语言为例)如下:
在本实施例中,通过获取每条汇编指令在待转换文本中的汇编顺序,以基于该汇编顺序依次对待转换汇编文本中的汇编指令进行转换,得到每条汇编指令对应的高级语言语句,从而使得每条汇编指令转化后对应为一个函数或一个标号,整个转化过程不改动原汇编代码的结构,以保证转化前后程序的一致性。
进一步的,基于上述实施例,请参照图7,在本申请所提供的其中一个示例性的实施例中,在基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句之后,上述语言转换方法的具体实现过程还可以包括步骤S710和步骤S720,详细介绍如下:
步骤S710,对每条汇编指令对应的高级语言语句进行优化,得到优化后的每条汇编指令对应的高级语言语句;
步骤S720,基于优化后的每条汇编指令对应的高级语言语句生成目标平台的可执行文件,以使目标平台执行可执行文件。
具体的,承接上述实施例,在按照待转换的汇编文本中的汇编顺序将每条汇编指令转换为其对应的高级语言语句以后,对转换得到的高级语言语句进行优化处理以提高转换后的高级语言文本的程序的运行速度。然后将优化后的每条汇编指令对应的高级语言语句生成该高级语言目标平台的可执行文件,以使得可以在该目标平台正常执行汇编指令转换后的高级语言对应的程序。
示例性的,在转换后的高级语言语句进行优化的方案可以为:解析由汇编代码转换得到的高级语言语句,并进一步处理汇编代码中的标签和跳转等信息,以生成对应的高级语言函数、结构体或代码等。再对得到的高级语言语句进行优化。
在一些可实现的实施例中,对高级语言语句的优化包括:常量折叠,也就是说,将汇编指令转换得到的高级语言语句中的,在程序中多次使用的常量合并为一个常量,从而减少代码量和常量的存储空间;死代码删除,也就是说,将程序中永远不会被执行的代码进行删除处理,从而减少程序的大小和运行时间;基于寄存器的优化,也就是说,将程序中频繁使用的变量存放如寄存器中,从而提高程序的运行速度;内联函数,也就是说,将程序中的函数调用直接替换为函数体,从而检索函数调用的开销,提升程序的运行速度;循环展开,也就是说,将循环中的代码重复展开,从而减少循环的次数和循环的开销;代码复用,也就是说,将程序中相似的代码封装为函数或者封装为宏定义,从而减少代码量和提高程序的可维护性。
示例性的,承接上述实施例,若按照上述实施例中语言转换方法对当前平台上的汇编指令向C语言进行转换,得到的C语句为:
1:uint8_t R0 = 0;
2:uint8_t R1 = 1;
3:uint8_t A = R0;
4:A += R1;
5:if (A != 0x12) { goto loop; }
6:R1 = 0x34;
进行优化后的代码如下:
void loop() {
uint8_t A = R0;
A += R1;
if (A != 0x12) {
goto loop;
}
}
void main() {
loop();
R1 = 0x34;
}
在本实施例中,通过对每条汇编指令对应的高级语言语句进行优化,得到优化后的每条汇编指令对应的高级语句,并基于优化后的高级语句生成目标平台对应的可执行文件,以实现在目标平台正常执行当前平台汇编文本对应的用高级语言编写的程序,并且通过对高级语言语句的优化,提高了该程序执行的速率,降低了服务器的负载。
图8是本申请的一示例性实施例示出的语言转换装置的框图,该装置可使用图1所示的实施环境,并具体配置在服务器120中。该装置也可以适用于其它示例性的实施环境,并具体配置在其他设备中,本实施例不对该装置所实用的实施环境进行限制。
如图8所示,该示例性的语言转换装置包括:汇编文本获取模块810,用于获取含有多条汇编指令的待转换汇编文本;全局变量获取模块820,用于获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息;转换格式确定模块830,用于基于每条汇编指令的类型确定每条汇编指令向指定高级语言进行转换的转换格式;语言转换模块840,用于基于每条汇编指令的转换格式和全局变量信息,对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,上述全局变量获取模块820还包括:第一获取单元,用于获取汇编系统中的每种类型存储空间;全局化定义单元,用于针对每种类型存储空间,对存储空间进行全局化定义,得到存储空间对应的全局变量;全局变量信息确定单元,用于基于每种类型存储空间对应的全局变量得到全局变量信息。
根据本申请实施例的一个方面,上述全局化定义单元具体包括有:寄存器全局化定义子单元,用于若存储空间为寄存器类型,则将寄存器类型的存储空间定义为全局变量;内存空间全局化定义子单元,用于若存储空间为内存空间类型,则通过数组形式将内存空间类型的存储空间定义为全局变量;程序空间全局化定义子单元,用于若存储空间为程序空间类型,则通过数组形式将内存空间类型的存储空间定义为全局变量。
根据本申请实施例的一个方面,上述寄存器全局化定义子单元还用于,若存储空间为预设功能的寄存器,则将预设功能的寄存器转换为对应的数组,并定义数组的偏移地址,其中,数组和偏移地址均为全局变量。
根据本申请实施例的一个方面,上述语言转换模块840还具体包括:第二获取单元,用于针对每条汇编指令,获取汇编指令中含有的存储空间,通过全局变量信息确定汇编指令中含有的存储空间对应的全局变量;以及,第一语言转换单元,用于基于汇编指令的转换格式和汇编指令中含有的存储空间对应的全局变量,对汇编指令进行转换,得到汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,上述语言转换模块840还具体包括:第三获取单元,用于获取每条汇编指令在待转换汇编文本中的汇编顺序;第二语言转换单元,用于基于汇编顺序依次对每条汇编指令进行转换,得到每条汇编指令对应的高级语言语句。
根据本申请实施例的一个方面,上述语言转换装置还包括:优化模块,用于对每条汇编指令对应的高级语言语句进行优化,得到优化后的每条汇编指令对应的高级语言语句;生成模块,用于基于优化后的每条汇编指令对应的高级语言语句生成目标平台的可执行文件,以使目标平台执行可执行文件。
需要说明的是,上述实施例所提供的语言转换装置与上述实施例所提供的语言转换方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的语言转换装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现上述各个实施例中提供的语言转换方法。
图9示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(Central Processing Unit,CPU)901,其可以根据存储在只读存储器(Read-Only Memory,ROM)902中的程序或者从储存部分908加载到随机访问存储器(Random Access Memory,RAM)903中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(Input /Output,I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分907;包括硬盘等的储存部分908;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入储存部分908。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammableReadOnlyMemory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(CompactDiscRead-OnlyMemory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的语言转换方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的语言转换方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种语言转换方法,其特征在于,包括:
获取含有多条汇编指令的待转换汇编文本;
获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,若所述存储空间为预设功能的寄存器,则定义所述预设功能的寄存器的偏移地址,将所述偏移地址作为全局变量;
基于每条汇编指令的类型确定所述每条汇编指令向指定高级语言进行转换的转换格式;
基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句;
对所述每条汇编指令对应的高级语言语句进行优化,其中,优化过程包括:解析所述高级语言语句,将所述高级语言语句中的标签信息和跳转信息生成对应的函数和/或结构体,以基于所述优化后的每条汇编指令对应的高级语言语句生成目标平台的可执行文件,以使所述目标平台执行所述可执行文件;所述高级语言语句的优化包括:将所述高级语言语句中多次使用的常量合并为一个常量;将所述高级语言语句中的死代码进行删除处理;将所述高级语言语句中相似的高级语言语句封装为函数或宏定义;
所述对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,包括:
获取每条汇编指令在所述待转换汇编文本中的汇编顺序;
基于所述汇编顺序依次对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,其中,所述每条汇编指令转换后对应为一个函数或标号,并且所述汇编指令向高级语言语句转换得到的所有函数中均不带参数。
2.如权利要求1所述的方法,其特征在于,所述获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,包括:
获取汇编系统中多种类型的存储空间;
针对每种类型的存储空间,对所述存储空间进行全局化定义,得到所述存储空间对应的全局变量;
基于所述每种类型的存储空间对应的全局变量得到所述全局变量信息。
3.如权利要求2所述的方法,其特征在于,所述对所述存储空间进行全局化定义,得到所述存储空间对应的全局变量,包括:
若所述存储空间为寄存器类型,则将所述寄存器类型的存储空间定义为全局变量;
若所述存储空间为内存空间类型,则通过数组形式将所述内存空间类型的存储空间定义为全局变量;
若所述存储空间为程序空间类型,则通过数组形式将所述程序空间类型的存储空间定义为全局变量。
4.如权利要求1所述的方法,其特征在于,所述基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,包括:
针对每条汇编指令,获取所述汇编指令中含有的存储空间,通过全局变量信息确定所述汇编指令中含有的存储空间对应的全局变量;以及
基于所述汇编指令的转换格式和所述汇编指令中含有的存储空间对应的全局变量,对所述汇编指令进行转换,得到所述汇编指令对应的高级语言语句。
5.一种语言转换装置,其特征在于,所述装置包括:
汇编文本获取模块,用于获取含有多条汇编指令的待转换汇编文本;
全局变量获取模块,用于获取用于表征对汇编系统中的存储空间进行全局化定义的全局变量信息,若所述存储空间为预设功能的寄存器,则定义所述预设功能的寄存器的偏移地址,将所述偏移地址作为全局变量;
转换格式确定模块,用于基于每条汇编指令的类型确定所述每条汇编指令向指定高级语言进行转换的转换格式;
语言转换模块,用于基于每条汇编指令的转换格式和所述全局变量信息,对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句;获取每条汇编指令在所述待转换汇编文本中的汇编顺序;基于所述汇编顺序依次对所述每条汇编指令进行转换,得到所述每条汇编指令对应的高级语言语句,其中,所述每条汇编指令转换后对应为一个函数或标号,并且所述汇编指令向高级语言语句转换得到的所有函数中均不带参数;
优化模块,用于对所述每条汇编指令对应的高级语言语句进行优化,其中,优化过程包括:解析所述高级语言语句,将所述高级语言语句中的标签信息和跳转信息生成对应的函数和/或结构体,以基于所述优化后的每条汇编指令对应的高级语言语句生成目标平台的可执行文件,以使所述目标平台执行所述可执行文件;所述高级语言语句的优化包括:将所述高级语言语句中多次使用的常量合并为一个常量;将所述高级语言语句中的死代码进行删除处理;将所述高级语言语句中相似的高级语言语句封装为函数或宏定义。
6.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至4中任一项所述的语言转换方法。
7.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至4中任一项所述的语言转换方法。
CN202310788555.6A 2023-06-30 2023-06-30 语言转换方法、装置、设备及存储介质 Active CN116501332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310788555.6A CN116501332B (zh) 2023-06-30 2023-06-30 语言转换方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310788555.6A CN116501332B (zh) 2023-06-30 2023-06-30 语言转换方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116501332A CN116501332A (zh) 2023-07-28
CN116501332B true CN116501332B (zh) 2023-09-29

Family

ID=87318750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310788555.6A Active CN116501332B (zh) 2023-06-30 2023-06-30 语言转换方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116501332B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968548B1 (en) * 2000-12-01 2005-11-22 Unisys Corporation Method and apparatus for sharing data structures between assembly language programs and high-level language programs
CN102830975A (zh) * 2012-08-15 2012-12-19 深圳市翌日科技有限公司 一种汇编语言到高级语言的代码转换方法和装置
JP2015197821A (ja) * 2014-04-01 2015-11-09 株式会社日立製作所 アセンブリコード変換装置およびその変換方法
CN110058861A (zh) * 2019-04-19 2019-07-26 同盾控股有限公司 源码处理方法及装置、存储介质、电子设备
CN110096338A (zh) * 2019-05-10 2019-08-06 百度在线网络技术(北京)有限公司 智能合约执行方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968548B1 (en) * 2000-12-01 2005-11-22 Unisys Corporation Method and apparatus for sharing data structures between assembly language programs and high-level language programs
CN102830975A (zh) * 2012-08-15 2012-12-19 深圳市翌日科技有限公司 一种汇编语言到高级语言的代码转换方法和装置
JP2015197821A (ja) * 2014-04-01 2015-11-09 株式会社日立製作所 アセンブリコード変換装置およびその変換方法
CN110058861A (zh) * 2019-04-19 2019-07-26 同盾控股有限公司 源码处理方法及装置、存储介质、电子设备
CN110096338A (zh) * 2019-05-10 2019-08-06 百度在线网络技术(北京)有限公司 智能合约执行方法、装置、设备及介质

Also Published As

Publication number Publication date
CN116501332A (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
Edwards et al. Balsa: An asynchronous hardware synthesis language
CN110825488A (zh) 一种业务处理方法、装置及电子设备和存储介质
EP1065604A1 (en) Infrastructure for developing application-independent language modules for language-independent applications
US10949171B1 (en) Tools, mechanisms, and processes for transforming modules for an application into pluggable modules
CN104407863A (zh) 抽象控件模型编程装置和方法
CN111736840A (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
CN110858202A (zh) 数据库查询语句中where子句的生成方法和生成装置
CN112181542A (zh) 功能调用方法、装置、电子设备及存储介质
CN112558984A (zh) 代码编译的方法、装置、电子设备以及服务器
US9886251B2 (en) Optimized compiling of a template function
CN114490116B (zh) 数据处理方法、装置、电子设备及存储介质
CN114443076A (zh) 镜像构建方法、装置、设备及存储介质
CN116501332B (zh) 语言转换方法、装置、设备及存储介质
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN115543440A (zh) 安卓项目迁移到类安卓系统的方法、电子设备和存储介质
CN116841559A (zh) 代码转换方法、装置、设备、介质和程序产品
WO2023083071A1 (zh) 视图交互方法、装置、电子设备及计算机可读介质
Martinez et al. Migrating c/c++ software to mobile platforms in the adm context
US11429358B2 (en) Representing asynchronous state machine in intermediate code
CN112162755B (zh) 一种数据处理方法、装置、介质和电子设备
CN116263690A (zh) 虚拟机从外部系统读取数据及相关写出数据的方法和装置
CN113709171A (zh) 一种用于跨组件状态通信的方法和装置
CN111382389B (zh) 多主题页面生成方法、装置、电子设备及存储介质
EP4191407A1 (en) Method and device for generating and registering ui service package and loading ui service
CN114428615B (zh) Css编译方法、样式更新方法、装置、介质及设备

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