CN102693147B - 计算机汇编语言的辅助分析装置及分析方法 - Google Patents

计算机汇编语言的辅助分析装置及分析方法 Download PDF

Info

Publication number
CN102693147B
CN102693147B CN201210193620.2A CN201210193620A CN102693147B CN 102693147 B CN102693147 B CN 102693147B CN 201210193620 A CN201210193620 A CN 201210193620A CN 102693147 B CN102693147 B CN 102693147B
Authority
CN
China
Prior art keywords
row
program
data
instruction
operand
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.)
Expired - Fee Related
Application number
CN201210193620.2A
Other languages
English (en)
Other versions
CN102693147A (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.)
Shanghai Polytechnic University
Original Assignee
Shanghai Polytechnic University
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 Shanghai Polytechnic University filed Critical Shanghai Polytechnic University
Priority to CN201210193620.2A priority Critical patent/CN102693147B/zh
Publication of CN102693147A publication Critical patent/CN102693147A/zh
Application granted granted Critical
Publication of CN102693147B publication Critical patent/CN102693147B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种计算机汇编语言的辅助分析装置及其分析方法,设置有控制器、输入装置、显示装置和程序分析器。先将以汇编语言编写的程序写入或导入,经过程序解析后给出所使用的指令、操作数、数据单元,以及数据流的变化情况,并据此输出显示一个相匹配的表格用于分析。该表格的行列数分别根据程序的指令数及使用的寄存器、存储器、指针、位存储器等数据单元数来灵活设置。并且,仅仅在数据变化时才填入相应的数据单元格内,使得数据的流动变化状态清楚,从而在分析或编写汇编语言时便于理解、省时省力。

Description

计算机汇编语言的辅助分析装置及分析方法
技术领域
本发明涉及一种计算机汇编语言的辅助分析装置及分析方法,有助于分析或编写计算机汇编语言。
背景技术
对于初学者来说,计算机汇编语言晦涩难懂,程序运行过程中寄存器、存储器、指针或位存储器中数据的变化不直观,不利于理解和记忆。
此前,虽然在汇编语言开发软件平台上有过类似的数据分析过程,但是在汇编语言的分析和编写时,作为一种辅助工具有意识地加以整理并明确提出的目前还没有。
发明内容
本发明的目的是提供一种计算机汇编语言的辅助分析装置及分析方法,将汇编语言的指令、操作数、数据流等以表格形式直观体现,使得计算机汇编语言的分析过程变得轻松有效,便于汇编语言的初学者进行理解,从而在分析或编写汇编语言时省时省力。
为了达到上述目的,本发明的技术方案是提供一种计算机汇编语言的辅助分析装置,其包含:
控制器,其控制整个辅助分析装置的工作运行,并提供与外部控制驱动系统通讯的接口;
输入装置,其与所述控制器连接,将以汇编语言编写的程序写入或导入所述辅助分析装置;
程序分析器,其与所述控制器连接,对所述程序进行解析,并给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况;
显示装置,其与所述控制器连接,输出显示一个与所述程序的指令、操作数、数据单元及数据流相匹配的表格;所述表格是一个M+3行、N+2列的表格,其中,M是该程序的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合。
所述程序分析器进一步包含指令分析器,所述指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+2行依次填入这些指令,还在表格第一列的第一行填入“指令”一词作为标识。
所述程序分析器进一步包含操作数分析器,所述操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数”一词作为标识。
所述程序分析器进一步包含数据流分析器,所述数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。
本发明的另一个技术方案是提供一种计算机汇编语言的辅助分析方法,使用上述的辅助分析装置实现,所述方法包含以下步骤:
步骤1、通过输入装置,编写或导入一段基于汇编语言的程序;
步骤2、使用程序分析器对该程序的内容进行解析,给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况,并通知控制器,在显示装置上输出一个M+3行、N+2列的表格;
其中,M是该程序中使用的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合。
步骤2中进一步包含步骤2.1,即,由指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+ 2行依次填入这些指令,还在表格第一列的第一行填入“指令”一词作为标识。
步骤2中进一步包含步骤2.2,即,由操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数”一词作为标识。
步骤2中进一步包含步骤2.3,即,由数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即第M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。
使用本发明所述计算机汇编语言的辅助分析装置及分析方法,其优点在于:本发明将汇编语言的指令、操作数、数据流等以表格形式直观体现,该表格的行列数分别根据程序的指令数及使用的寄存器、存储器、指针、位存储器等数据单元数来灵活设置;并且,仅仅在数据变化时才填入相应的数据单元格内,使得数据的流动变化状态清楚,使得计算机汇编语言的分析过程变得轻松有效,便于汇编语言的初学者进行理解,从而在分析或编写汇编语言时省时省力。
附图说明
图1是本发明所述辅助分析装置的框架结构示意图。
具体实施方式
本发明基于计算机汇编语言的表格分析法,表格分析法是将一段由汇编语言编写的程序,以表格形式直观表现来进行辅助分析的方法。以下用表1提供的一个具体实例作为示范来说明。
该程序首先是在寄存器的R6R7单元存放了一个16位无符号数5677H,并在R2R3单元和R4R5单元分别存放了另外两个16位无符号数1354H和3A21H。之后,将R6R7单元存放的16位无符号数据,先后减去R2R3单元和R4R5单元存放的16位无符号数据,并将差值留在R6R7单元中。利用程序运行时数据流使用过的有关累加器A、寄存器R2~R7等,用列表的方法分析程序如下表1所示。
表1 本发明提供的一种计算机汇编语言的表格分析法的表格示例
指令 操作数 C A R6 R7 R2 R3 R4 R5
  初始值     56H 77H 13H 54H 3AH 21H
CLR C 0              
MOV A,R7   77H            
SUBB A,R3   23H            
XCH A,R6   56H 23H          
SUBB A,R2   43H            
XCH A,R6   23H 43H          
SUBB A,R5   02H            
XCH A,R6   43H 02H          
SUBB A,R4   09H            
XCH A,R6   02H 09H          
MOV R7,A       02H        
  结果     09H 02H        
具体地,将整个程序分解到一个M+3行、N+2列的表格中,其中M是该程序的指令数,N是该程序中使用的寄存器、存储器、指针或位存储器等数据单元的数量。
其中,在表格的第一行是表头,依次填写“指令”、“操作数”以及程序运行过程中,数据流经过的寄存器、存储器、指针甚至于位存储器等的名称,具体填写哪些项目以及项目的多少按照实际需要可灵活安排。
表格的第二行中,填写所需要用到的寄存器、存储器、指针以及位存储器的原始数据。
从表格的第三行起,在第一列中依次填写程序中涉及的各条指令,第二列中填写与每条指令相对应的操作数。以后的列数则对应各个寄存器、存储器、指针以及位存储器,对应填入这些单元中有所改变的数据。
即是说,从第三行第三列开始,当同一列的上下行之间数据不变,例如仅仅对某一单元进行过读取操作而没有写入新的数据时,则使得下面一行保持空格状态,以使得数据流动变化的状态一目了然,并且页面也显得整洁。
表格的最后一行是结果行,将程序运行的最后结果数据填入相应的单元。
为了实现上述的表格分析法,本发明所述计算机汇编语言的辅助分析装置包含控制器,以及分别与之连接的输入装置,显示装置,和程序分析器。所述控制器、输入装置、显示装置、程序分析器,各自包含硬件装置、外围电路及相应的软件程序。
其中,输入装置可以是键盘等用以编写汇编语言程序的设备,也可以是直接导入一段已有程序的硬件或软件的组合。显示装置可以是显示屏、打印机或外部的存储设备等,需要根据汇编语言程序,在显示装置上相应地输出一个与表1类似的表格用于分析。在显示装置输出的表格中具体需要填入什么项目及数据,则需要由程序分析器对程序进行解析后给出;程序分析器进一步包含有指令分析器、操作数分析器及数据流分析器。控制器掌握整个系统的运行工作,并可以进一步通过设置的接口与其他工业控制系统相连接,从而可以通过汇编语言程序中数据的改变,来控制其他装置的运行状态,等等。
本发明所述计算机汇编语言的辅助分析方法,包含以下步骤:
步骤1、通过输入装置,编写或导入一段汇编语言的程序;
步骤2、程序分析器对该程序的内容进行解析,并通知控制器,在显示装置上输出一个表格;
步骤2.1、由指令分析器解析程序中的各条指令,依次在表格的第一列第三行开始填入这些指令,第一列的第一行填入“指令”作为标识;
步骤2.2、由操作数分析器解析程序中与各条指令相对应的操作数,依次在表格的第二列第三行起填入这些操作数,第二列的第一行填入“操作数”作为标识;
步骤2.3、由数据流分析器解析程序中所使用的数据单元、其中相应的数据及数据的变化情况,这些数据单元可以是寄存器、存储器、指针或位存储器等等。
具体的,从表格的第三列开始设置与数据单元的个数相匹配的若干列,并在这些列的第一行中分别填入各个数据单元的名称;在这些列的第二行中,填入这些数据单元中数据的初始值;之后的行中,则仅仅在数据根据指令发生改变以后才填入相应的数值,否则保留空格;整个表格的最后一行则是结果行,将程序运行得到的结果数据填入相应的数据单元格中。
至此,对于某一汇编语言程序的分析完成。上述步骤2.1~步骤2.3可以改变运行的先后顺序,也可以是同时运行的。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (2)

1.一种计算机汇编语言的辅助分析装置,其特征在于,包含:
控制器,其控制整个辅助分析装置的工作运行,并提供与外部控制驱动系统通讯的接口;
输入装置,其与所述控制器连接,将以汇编语言编写的程序写入或导入所述辅助分析装置;
程序分析器,其与所述控制器连接,对所述程序进行解析,并给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况;
显示装置,其与所述控制器连接,输出显示一个与所述程序的指令、操作数、数据单元及数据流相匹配的表格;所述表格是一个M+3行、N+2列的表格,其中,M是该程序的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合;
其中,所述程序分析器进一步包含:
指令分析器,对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+2行依次填入这些指令,还在表格第一列的第一行填入“指令”一词作为标识;
操作数分析器,解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数”一词作为标识;
数据流分析器,解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。
2.一种计算机汇编语言的辅助分析方法,使用如权利要求1所述的辅助分析装置,其特征在于,所述方法包含以下步骤:
步骤1、通过输入装置,编写或导入一段基于汇编语言的程序;
步骤2、使用程序分析器对该程序的内容进行解析,给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况,并通知控制器,在显示装置上输出一个M+3行、N+2列的表格;
其中,M是该程序中使用的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合;
步骤2中进一步包含:
步骤2.1,由指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+ 2行依次填入这些指令,还在表格第一列的第一行填入“指令”一词作为标识;
步骤2.2,由操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数”一词作为标识;
步骤2.3,由数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即第M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。
CN201210193620.2A 2012-06-13 2012-06-13 计算机汇编语言的辅助分析装置及分析方法 Expired - Fee Related CN102693147B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210193620.2A CN102693147B (zh) 2012-06-13 2012-06-13 计算机汇编语言的辅助分析装置及分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210193620.2A CN102693147B (zh) 2012-06-13 2012-06-13 计算机汇编语言的辅助分析装置及分析方法

Publications (2)

Publication Number Publication Date
CN102693147A CN102693147A (zh) 2012-09-26
CN102693147B true CN102693147B (zh) 2015-10-28

Family

ID=46858628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210193620.2A Expired - Fee Related CN102693147B (zh) 2012-06-13 2012-06-13 计算机汇编语言的辅助分析装置及分析方法

Country Status (1)

Country Link
CN (1) CN102693147B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070877B (zh) * 2013-07-18 2022-11-11 日本电信电话株式会社 线性预测分析装置、线性预测分析方法以及记录介质
JP6716446B2 (ja) * 2016-12-21 2020-07-01 Dmg森精機株式会社 加工プログラム解析装置、加工プログラム解析プログラムおよび加工プログラム解析方法
CN107832115A (zh) * 2017-11-24 2018-03-23 郑州云海信息技术有限公司 一种命令行参数格式表示结构及方法
WO2022073197A1 (zh) * 2020-10-09 2022-04-14 深圳市大疆创新科技有限公司 汇编指令的资源分析方法、装置和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3966518B2 (ja) * 2004-03-12 2007-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム解析装置、その解析方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"汇编语言学习支撑平台的设计与实现";余进;《中国优秀硕士学位论文全文数据库》;20100415(第4期);第15-16页,第21-22页,第29页,第36页,图3-6,图3-8 *

Also Published As

Publication number Publication date
CN102693147A (zh) 2012-09-26

Similar Documents

Publication Publication Date Title
CN102693147B (zh) 计算机汇编语言的辅助分析装置及分析方法
CN103646411A (zh) 图表分析系统及图表分析方法
CN105094707A (zh) 一种数据存储、读取方法及装置
CN103575916B (zh) 分析设备控制系统和分析设备控制方法
CN107533473B (zh) 用于仿真的高效波形生成
WO2012122085A2 (en) System and method for simulating operation of substructures of a chemical processing plant
CN102591787B (zh) Java卡的数据处理方法及装置
CN106940401A (zh) 一种阻抗测试方法及系统
CN104317715A (zh) 基于模拟器的中央处理器指令集的功能测试自动实施方法
CN109408117B (zh) 矩阵转置装置及方法、显示装置
CN105005696A (zh) 一种确定失效率的方法及装置
CN103389933A (zh) 测试卡及具有该测试卡的测试用电子装置
CN102866985B (zh) 用于联机分析处理系统的数据格式化装置和方法
CN103389893B (zh) 一种配置寄存器读写方法及装置
JP5496429B1 (ja) エンジニアリングツールおよびプログラマブルロジックコントローラ
CN104090833A (zh) 服务器及其讯号解析装置
CN104281575A (zh) 一种网页数据获取方法及模版引擎
CN103095820B (zh) 一种确定访问页面的终端数量的方法及装置
Hrz et al. Modeling and Control of Discrete-event Dynamic Systems: with Petri Nets and Other Tools
CN103856967A (zh) 一种nis系统中设备面板的可视化配置方法
CN105824684B (zh) 一种多模式大数据软件模拟器的实现方法
Lutovac-Banduka et al. Graphical User Interface for Design, Analysis, Validation, and Reporting of Continuous-Time Systems Using Wolfram Language
CN113485236A (zh) 一种小型工控系统便携式试验箱
CN105512361A (zh) 一种基于ansys软件的子结构分析方法
WO2020213129A1 (ja) デバッグ支援装置、デバッグ支援方法、デバッグ支援プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151028

Termination date: 20180613