CN106843808B - 一种兼容不同格式类型的指令解析方法 - Google Patents
一种兼容不同格式类型的指令解析方法 Download PDFInfo
- Publication number
- CN106843808B CN106843808B CN201710009783.3A CN201710009783A CN106843808B CN 106843808 B CN106843808 B CN 106843808B CN 201710009783 A CN201710009783 A CN 201710009783A CN 106843808 B CN106843808 B CN 106843808B
- Authority
- CN
- China
- Prior art keywords
- instruction
- byte
- format
- plain
- command unit
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 41
- 239000012141 concentrate Substances 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 238000005194 fractionation Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims description 2
- 229910002056 binary alloy Inorganic materials 0.000 claims 1
- 238000007792 addition Methods 0.000 abstract description 21
- 238000012217 deletion Methods 0.000 abstract description 4
- 230000037430 deletion Effects 0.000 abstract description 4
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000012356 Product development Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。
Description
技术领域
本发明涉及通信设备技术领域,尤其涉及一种兼容不同格式类型的指令解析方法。
背景技术
目前国内各个银行、保险等机构在处理金融相关业务时,普遍采用各自业务系统向终端设备发送指令的方式,使终端设备和金融卡片(磁条卡、IC卡、射频卡等)进行交互,然后获取终端返回的数据。出于安全性和不同业务需求的考虑,各个机构使用的指令都不相同;由于终端设备厂商间的竞争较为激烈,各个终端设备生产厂家也都推出了自家的指令集,使得当前行业金融模块的指令种类繁多、格式杂乱。任何终端设备厂商不可能做到完全兼容所有的业务系统指令,所以经常需要根据需求去适配各个机构的业务系统指令。原有的指令解析方案是在已知一种指令格式后,需要在程序源代码中添加能够判断这种格式指令的指令解析代码。这种方案存在以下缺点:对每种格式的指令需要开发相应的指令解析代码,代码不能复用,兼容性和可扩展性较差;频繁的修改源代码,使得开发效率变得很低;不断增加指令解析过程代码会使得产品代码体积不断变大,很容易造成意想不到的问题,稳定性差,风险较大。
现有技术中公开了“一种支持多指令集的指令解析装置及其指令解析方法”,见公开号为:CN101706744A,公开日为:2010-05-12的中国专利,一种支持多指令集的指令解析方法,包括被动命令的处理过程和主动命令的处理过程,被动命令的处理过程包括:按照应用软件待发送的指令参数生成统一的XML命令数据,再使用XSL将该XML命令数据合成后发送至通信终端;主动命令的处理过程包括:在接收到通信终端上报的指令数据后,使用XML匹配该指令数据,再使用XSL将其合成后上报至应用软件。该发明使用XML及XSL技术,通过配置的方式即可实现对多指令集的解析,具有良好的兼容性及扩展性。但是其方案针对的各种指令集具有在同一种功能上命令参数基本一致的特点,而且其主要处理是在上位机通信接口处将指令数据按照统一格式进行处理,该方法不能解决上面存在的技术问题。
发明内容
本发明要解决的技术问题,在于提供一种兼容不同格式类型的指令解析方法,通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性;且本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率。
本发明是这样实现的:一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程,且指令添加流程和指令解析流程为分离操作;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。
进一步的,所述指令添加流程具体为:步骤10、定义一明文指令集,明文指令集中每个字段描述了一条指令,每个字段中至少包含两个键:一个键表示这条指令,其值由指令字节组成,指令字节的编写都有设定的格式;另一个键表示这条指令的操作码,其值为一个数字;
步骤11、通过一指令集制作工具将明文指令集中的指令按首字节的大小顺序排列,根据首字节的值制作出方便查找的索引,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。所述二进制指令集是二进制文件,由索引部分和指令部分组成;
步骤12、使用一烧写工具将二进制指令集写入MCU存储器的设定位置。
进一步的,所述明文指令集以.ini格式的文件存在。
进一步的,所述指令字节的格式描述了每个指令字节的详细信息,该详细信息包括:指令字节的属性、指令字节的值、参数的长度、以及字节的拆分方式。
进一步的,所述步骤11具体实现方式为:通过一指令集制作工具读取明文指令集,将明文指令集中每个字段转换为一个指令单元,每个指令单元都是定长的,包含指令和操作码;指令每个字节用一个指令字表示,指令字由两个字节组成,第一个字节为数据字节,表示指令字节的具体值,第二个字节为描述字节,是对数据字节的功能描述;指令单元的最后两个字节存储指令的操作码;在指令单元的指令和操作码之间存储指令字段中的指令单元的参数取值范围;所述制作的索引记录了指令首部相同的指令集的位置。
进一步的,从设备通信口接收来自业务系统的指令数据,存入缓存;
提取缓存中指令数据的首字节,利用索引找到与指令首字节相同的指令单元所在位置范围;
在此位置范围内,从第一个指令单元开始,逐个单元进行匹配,根据指令单元中的描述字节,检查指令数据的每个字节是否符合该指令单元对该字节的描述;不符合,则匹配失败,返回解析失败标志;符合,则提取指令单元中存储的操作码,并返回成功标志。
进一步的,所述方法还包括一指令执行模块,所述指令执行模块在接收到指令解析的结果后,通过查看指令的操作码,根据事先约定好的操作内容进行相应处理,并将操作结果数据处理为相应的格式返回给业务系统,完成指令操作。
本发明具有如下优点:本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率;本发明中的指令解析流程具有很强的通用性,提高了代码复用效率,降低了错误风险。这种指令集和指令解析分离的思想可以快速的移植到其他类似工作模式的产品上,通用性较高的指令解析代码可以明显提升代码的稳定性和健壮性,使得后续工作变得简单高效,达到“一劳永逸”的效果;此外,指令解析和指令处理高度隔离的方法也增强了指令处理的可拓展性,当程序出现异常时可以迅速定位问题位置;由于明文指令集的格式中包含了大量指令信息,在应用程序的指令处模块中,可以快速的分离出指令的各个部分数据,使得指令处理程序变得简单。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明指令添加流程的示意图。
图2为本发明指令解析流程的示意图。
具体实施方式
请参阅图1和图2所示,一种兼容不同格式类型的指令解析方法,所述方法包括指令添加流程和指令解析流程,且指令添加流程和指令解析流程为分离操作;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;使这种指令集可以适用于目前的绝大多数业务系统的指令格式;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果。那么指令的适配工作将变得非常简单。在适配新指令时,只需要按照一定的格式在这个指令集中添加指令,无需修改和添加指令解析代码,就可以正确完成整个指令解析过程。后面的指令处理模块只需根据解析的结果去做相应的处理即可,达到底层和应用层的高度分离,降低风险。
所述指令添加流程具体为:步骤10、定义一明文指令集,明文指令集以.ini格式的文件存在,ini文件的明文指令集中每个字段描述了一条指令,每个字段中至少包含两个键:一个键表示这条指令,其值由指令字节组成,指令字节的编写都有设定的格式;所述指令字节的格式描述了每个指令字节的详细信息,该详细信息包括:指令字节的属性、指令字节的值、参数的长度、以及字节的拆分方式。这种指令格式可以适用于目前国内绝大多数业务系统指令;另一个键表示这条指令的操作码,其值为一个数字;取值由开发人员决定。明文指令集以人容易理解的格式编写,方便人工添加、修改和删除操作。
步骤11、通过一指令集制作工具将明文指令集中的指令按首字节的大小顺序排列,根据首字节的值制作出方便查找的索引,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。所述二进制指令集是二进制文件,由索引部分和指令部分组成;
步骤12、使用一烧写工具将二进制指令集写入MCU存储器的设定位置。
其中,所述步骤11具体实现方式为:通过一指令集制作工具读取明文指令集,将明文指令集中每个字段转换为一个指令单元,每个指令单元都是定长的,包含指令和操作码;指令每个字节用一个指令字表示,指令字由两个字节组成,第一个字节为数据字节,表示指令字节的具体值,第二个字节为描述字节,是对数据字节的功能描述;指令单元的最后两个字节存储指令的操作码;在指令单元的指令和操作码之间存储指令字段中的指令单元的参数取值范围;所述制作的索引记录了指令首部相同的指令集的位置,将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分。
如图2所示,本发明的指令解析方法是一种支持多格式、可变指令集的通用指令解析方法,只要新添加的指令按照明文指令集中规定的指令格式进行编写,这种解析方法都可以从存储器的二进制指令集区域匹配并解析出此条指令及其各个参数。当设备的各个通信口(串口、USB口等)收到来自业务系统的指令时,开始进入指令解析过程,从设备通信口接收来自业务系统的指令数据,存入缓存;
提取缓存中指令数据的首字节,利用索引找到与指令首字节相同的指令单元所在位置范围;
在此位置范围内,从第一个指令单元开始,逐个单元进行匹配,根据指令单元中的描述字节,检查指令数据的每个字节是否符合该指令单元对该字节的描述;不符合,则匹配失败,返回解析失败标志;符合,则提取指令单元中存储的操作码,并返回成功标志。
另外,所述方法还包括一指令执行模块,所述指令执行模块在接收到指令解析的结果后,通过查看指令的操作码,根据事先约定好的操作内容进行相应处理,并将操作结果数据处理为相应的格式返回给业务系统,完成指令操作。
总之,本发明通过指令添加流程和指令解析流程的配合,适配新的指令只需对明文指令集进行增删,无需修改指令解析代码,提高了程序健壮性及稳定性。本发明中的明文指令集支持多种格式的指令集,兼容性、可扩展性强,具有清晰易懂、修改简单的特点,减少了开发人员的工作量,提高了产品开发的效率和指令适配效率;本发明中的指令解析流程具有很强的通用性,提高了代码复用效率,降低了错误风险。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种兼容不同格式类型的指令解析方法,其特征在于:所述方法包括指令添加流程和指令解析流程,且指令添加流程和指令解析流程为分离操作;所述指令添加流程为:定义一设定格式的可拓展的指令集,在指令集中添加指令;所述指令解析流程在无需修改和添加指令解析代码的前提下,正确解析这种设定格式的指令集中的任意指令,并且返回解析结果;
所述指令添加流程具体为:步骤10、定义一明文指令集,明文指令集中每个字段描述了一条指令,每个字段中至少包含两个键:一个键表示这条指令,其值由指令字节组成,指令字节的编写都有设定的格式;另一个键表示这条指令的操作码,其值为一个数字;
步骤11、通过一指令集制作工具将明文指令集中的指令按首字节的大小顺序排列,根据首字节的值制作出方便查找的索引;将明文指令集中的每一条明文指令转换为二进制指令单元,按首字节大小排序,组成指令部分;所述二进制指令集是二进制文件,由索引部分和指令部分组成;
步骤12、使用一烧写工具将二进制指令集写入MCU存储器的设定位置。
2.根据权利要求1所述的一种兼容不同格式类型的指令解析方法,其特征在于:所述明文指令集以.ini格式的文件存在。
3.根据权利要求1所述的一种兼容不同格式类型的指令解析方法,其特征在于:所述指令字节的格式描述了每个指令字节的详细信息,该详细信息包括:指令字节的属性、指令字节的值、参数的长度、以及字节的拆分方式。
4.根据权利要求1所述的一种兼容不同格式类型的指令解析方法,其特征在于:所述步骤11具体实现方式为:通过一指令集制作工具读取明文指令集,将明文指令集中每个字段转换为一个指令单元,每个指令单元都是定长的,包含指令和操作码;指令每个字节用一个指令字表示,指令字由两个字节组成,第一个字节为数据字节,表示指令字节的具体值,第二个字节为描述字节,是对数据字节的功能描述;指令单元的最后两个字节存储指令的操作码;在指令单元的指令和操作码之间存储指令字段中的指令单元的参数取值范围;所述制作的索引记录了指令首部相同的指令集的位置。
5.根据权利要求4所述的一种兼容不同格式类型的指令解析方法,其特征在于:从设备通信口接收来自业务系统的指令数据,存入缓存;
提取缓存中指令数据的首字节,利用索引找到与指令首字节相同的指令单元所在位置范围;
在此位置范围内,从第一个指令单元开始,逐个单元进行匹配,根据指令单元中的描述字节,检查指令数据的每个字节是否符合该指令单元对该字节的描述;不符合,则匹配失败,返回解析失败标志;符合,则提取指令单元中存储的操作码,并返回成功标志。
6.根据权利要求1所述的一种兼容不同格式类型的指令解析方法,其特征在于:所述方法还包括一指令执行模块,所述指令执行模块在接收到指令解析的结果后,通过查看指令的操作码,根据事先约定好的操作内容进行相应处理,并将操作结果数据处理为相应的格式返回给业务系统,完成指令操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009783.3A CN106843808B (zh) | 2017-01-06 | 2017-01-06 | 一种兼容不同格式类型的指令解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009783.3A CN106843808B (zh) | 2017-01-06 | 2017-01-06 | 一种兼容不同格式类型的指令解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843808A CN106843808A (zh) | 2017-06-13 |
CN106843808B true CN106843808B (zh) | 2019-06-21 |
Family
ID=59117884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710009783.3A Active CN106843808B (zh) | 2017-01-06 | 2017-01-06 | 一种兼容不同格式类型的指令解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843808B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221621A (zh) * | 2019-10-11 | 2020-06-02 | 中国电力科学研究院有限公司 | 一种电能表虚拟机的专用指令处理方法及系统 |
CN111813411A (zh) * | 2020-06-13 | 2020-10-23 | 立乐教育科技(上海)有限公司 | 一种基于Python脚本语言的指令化方法 |
CN111917513B (zh) * | 2020-07-29 | 2022-11-22 | 上海海洋大学 | 一种移动端与服务器端数据交互方法 |
CN113407386B (zh) * | 2021-05-13 | 2022-08-23 | 福建升腾资讯有限公司 | 一种模拟测试居民证件的装置 |
CN117608667B (zh) * | 2024-01-23 | 2024-05-24 | 合芯科技(苏州)有限公司 | 指令集处理系统、方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706744A (zh) * | 2009-10-27 | 2010-05-12 | 深圳市中兴移动通信有限公司 | 一种支持多指令集的指令解析装置及其指令解析方法 |
CN103077069A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 指令解析的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US20080098298A1 (en) * | 2004-11-17 | 2008-04-24 | Chao-Chun Lee | Compound Web Document Generation Method and Web-based Editing System for Generating a Compound Web Document |
-
2017
- 2017-01-06 CN CN201710009783.3A patent/CN106843808B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706744A (zh) * | 2009-10-27 | 2010-05-12 | 深圳市中兴移动通信有限公司 | 一种支持多指令集的指令解析装置及其指令解析方法 |
CN103077069A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 指令解析的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106843808A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843808B (zh) | 一种兼容不同格式类型的指令解析方法 | |
CN110727703B (zh) | 一种自动识别json代码中注释的方法及装置 | |
CN111177184A (zh) | 基于自然语言的结构化查询语言转换方法、及其相关设备 | |
US20170103244A1 (en) | Two-dimensional code based information aquisition system and method thereof | |
CN104820604B (zh) | 一种应用于pos终端的浏览器 | |
CN113312108B (zh) | Swift报文的校验方法、装置、电子设备及存储介质 | |
CN105447099A (zh) | 日志结构化信息提取方法及装置 | |
CN106341444A (zh) | 数据访问方法和装置 | |
US20080155519A1 (en) | Code translator | |
CN101908078A (zh) | 一种将网页数据导入excel表格的方法和装置 | |
CN112671734B (zh) | 面向多数据源的报文处理方法及其相关设备 | |
CN108768929A (zh) | 电子装置、征信反馈报文的解析方法及存储介质 | |
CN110445860A (zh) | 一种报文发送方法、装置、终端设备及存储介质 | |
US20120124066A1 (en) | Secs communication device and secs communication method thereof | |
CN107911227A (zh) | 一种断点数据跟进方法、电子装置及计算机可读存储介质 | |
US10956659B1 (en) | System for generating templates from webpages | |
CN108959343A (zh) | 一种文字修改的方法及装置 | |
CN110019485A (zh) | 一种产品数据入库方法、终端设备及存储介质 | |
CN102968609B (zh) | 一种基于Code 128一维条码的条码阅读设备设置方法 | |
CN108629048A (zh) | 一种路由参数传递优化方法及系统 | |
US20050273755A1 (en) | Scripting engine for network communication software | |
CN104320454A (zh) | 一种在http协议还原中实现自定义输出的方法及系统 | |
CN109144585A (zh) | 一种输入方法、输入装置、可读介质和智能设备 | |
CN113377362B (zh) | 一种电控端私有协议解析的源代码自动生成与适配方法 | |
CN109739923A (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 |