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

文档序号:6371338阅读:202来源:国知局
专利名称:计算机汇编语言的辅助分析装置及分析方法
技术领域
本发明涉及一种计算机汇编语言的辅助分析装置及分析方法,有助于分析或编写计算机汇编语目。
背景技术
对于初学者来说,计算机汇编语言晦涩难懂,程序运行过程中寄存器、存储器、指针或位存储器中数据的变化不直观,不利于理解和记忆。此前,虽然在汇编语言开发软件平台上有过类似的数据分析过程,但是在汇编语言的分析和编写时,作为一种辅助工具有意识地加以整理并明确提出的目前还没有。

发明内容
·
本发明的目的是提供一种计算机汇编语言的辅助分析装置及分析方法,将汇编语言的指令、操作数、数据流等以表格形式直观体现,使得计算机汇编语言的分析过程变得轻松有效,便于汇编语言的初学者进行理解,从而在分析或编写汇编语言时省时省力。为了达到上述目的,本发明的技术方案是提供一种计算机汇编语言的辅助分析装置,其包含
控制器,其控制整个辅助分析装置的工作运行,并提供与外部控制驱动系统通讯的接
Π ;
输入装置,其与所述控制器连接,将以汇编语言编写的程序写入或导入所述辅助分析
装置;
程序分析器,其与所述控制器连接,对所述程序进行解析,并给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况;
显示装置,其与所述控制器连接,输出显示一个与所述程序的指令、操作数、数据单元及数据流相匹配的表格;所述表格是一个M+3行、N+2列的表格,其中,M是该程序的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合。所述程序分析器进一步包含指令分析器,所述指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+2行依次填入这些指令,还在表格第一列的第一行填入“指令” 一词作为标识。所述程序分析器进一步包含操作数分析器,所述操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数” 一词作为标识。所述程序分析器进一步包含数据流分析器,所述数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。本发明的另一个技术方案是提供一种计算机汇编语言的辅助分析方法,使用上述的辅助分析装置实现,所述方法包含以下步骤
步骤I、通过输入装置,编写或导入一段基于汇编语言的程序;
步骤2、使用程序分析器对该程序的内容进行解析,给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况,并通知控制器,在显示装置上输出一个M+3行、N+2列的表格;
其中,M是该程序中使用的指令数,N是该程序中使用的数据单元的数量;所述数据单 元包括寄存器、存储器、指针、位存储器及其任意组合。步骤2中进一步包含步骤2. 1,S卩,由指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+ 2行依次填入这些指令,还在表格第一列的第一行填入“指令”一词作为标识。步骤2中进一步包含步骤2. 2,S卩,由操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+2行依次填入这些操作数,还在表格第二列的第一行填入“操作数” 一词作为标识。步骤2中进一步包含步骤2. 3,S卩,由数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据单元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据单元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即第M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后结果。使用本发明所述计算机汇编语言的辅助分析装置及分析方法,其优点在于本发明将汇编语言的指令、操作数、数据流等以表格形式直观体现,该表格的行列数分别根据程序的指令数及使用的寄存器、存储器、指针、位存储器等数据单元数来灵活设置;并且,仅仅在数据变化时才填入相应的数据单元格内,使得数据的流动变化状态清楚,使得计算机汇编语言的分析过程变得轻松有效,便于汇编语言的初学者进行理解,从而在分析或编写汇编语言时省时省力。


图I是本发明所述辅助分析装置的框架结构示意图。
具体实施例方式本发明基于计算机汇编语言的表格分析法,表格分析法是将一段由汇编语言编写的程序,以表格形式直观表现来进行辅助分析的方法。以下用表I提供的一个具体实例作为示范来说明。该程序首先是在寄存器的R6R7单元存放了一个16位无符号数5677H,并在R2R3单元和R4R5单元分别存放了另外两个16位无符号数1354H和3A21H。之后,将R6R7单元存放的16位无符号数据,先后减去R2R3单元和R4R5单元存放的16位无符号数据,并将差值留在R6R7单元中。利用程序运行时数据流使用过的有关累加器A、寄存器R2 R7等,用列表的方法分析程序如下表I所示。表I本发明提供的一种计算机汇编语言的表格分析法的表格示例
权利要求
1.一种计算机汇编语言的辅助分析装置,其特征在于,包含 控制器,其控制整个辅助分析装置的工作运行,并提供与外部控制驱动系统通讯的接Π ; 输入装置,其与所述控制器连接,将以汇编语言编写的程序写入或导入所述辅助分析装置; 程序分析器,其与所述控制器连接,对所述程序进行解析,并给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情况; 显示装置,其与所述控制器连接,输出显示一个与所述程序的指令、操作数、数据单元及数据流相匹配的表格;所述表格是ー个M+3行、N+2列的表格,其中,M是该程序的指令数,N是该程序中使用的数据单元的数量;所述数据単元包括寄存器、存储器、指针、位存储器及其任意組合。
2.如权利要求I所述的辅助分析装置,其特征在于,所述程序分析器进ー步包含指令分析器,所述指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+2行依次填入这些指令,还在表格第一列的第一行填入“指令” 一词作为标识。
3.如权利要求2所述的辅助分析装置,其特征在于,所述程序分析器进ー步包含操作数分析器,所述操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数” 一词作为标识。
4.如权利要求3所述的辅助分析装置,其特征在干,所述程序分析器进ー步包含数据流分析器,所述数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据単元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据单元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据単元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后結果。
5.一种计算机汇编语言的辅助分析方法,使用如权利要求I所述的辅助分析装置,其特征在于,所述方法包含以下步骤 步骤I、通过输入装置,编写或导入一段基于汇编语言的程序; 步骤2、使用程序分析器对该程序的内容进行解析,给出该程序中所使用的指令、操作数、数据单元,以及数据流的变化情況,并通知控制器,在显示装置上输出ー个M+3行、N+2列的表格; 其中,M是该程序中使用的指令数,N是该程序中使用的数据单元的数量;所述数据单元包括寄存器、存储器、指针、位存储器及其任意组合。
6.如权利要求5所述的辅助分析方法,其特征在于,步骤2中进ー步包含步骤2.1,即,由指令分析器对所述程序所使用的M条指令进行解析,并通知所述控制器,在所述输出显示装置输出的表格第一列的第三行到第M+ 2行依次填入这些指令,还在表格第一列的第一行填入“指令” 一词作为标识。
7.如权利要求6所述的辅助分析方法,其特征在干,步骤2中进ー步包含步骤2.2,即,由操作数分析器解析该程序中与各条指令相对应的操作数,并通知所述控制器,在所述输出显示装置输出的表格第二列的第三行到第M+ 2行依次填入这些操作数,还在表格第二列的第一行填入“操作数” 一词作为标识。
8.如权利要求7所述的辅助分析方法,其特征在干,步骤2中进ー步包含步骤2.3,即,由数据流分析器解析该程序中所使用的数据单元、及其中数据的初始值和变化情况,并通知所述控制器,在所述输出显示装置输出的表格第一行的第三列到第N+ 2列,分别填入各个数据単元的名称作为标识;在所述表格第二行的第三列到第N+ 2列,对应填入这些数据単元中数据的初始值;在所述表格第三行到第M+2行、第三列到第N+ 2列的矩阵中,对应填入各个数据単元中根据相应指令及操作数而发生数值改变的数据,若同一列的上下行之间数据不变,则使得下面一行保持空格状态;所述表格的最后一行,即第M+3行,是结果行,在该行的第三列到第N+ 2列填入程序运行的最后結果。
全文摘要
本发明涉及一种计算机汇编语言的辅助分析装置及其分析方法,设置有控制器、输入装置、显示装置和程序分析器。先将以汇编语言编写的程序写入或导入,经过程序解析后给出所使用的指令、操作数、数据单元,以及数据流的变化情况,并据此输出显示一个相匹配的表格用于分析。该表格的行列数分别根据程序的指令数及使用的寄存器、存储器、指针、位存储器等数据单元数来灵活设置。并且,仅仅在数据变化时才填入相应的数据单元格内,使得数据的流动变化状态清楚,从而在分析或编写汇编语言时便于理解、省时省力。
文档编号G06F9/45GK102693147SQ201210193620
公开日2012年9月26日 申请日期2012年6月13日 优先权日2012年6月13日
发明者刘敏, 谈进 申请人:上海第二工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1