几款简单易用的MCS-51反汇编软件

🏠 首页 《无线电》杂志 2005年 🔗 第3期 🔗 第37页 分类:电脑·单片机·通信 🔗 刘小兰 🔗, 柳爱玲 🔗

为提高自己的MCS-51单片机编程技巧,往往需要多学习一些别人的编程经验。在没有源程序的情况下,反汇编目标代码为我们提供了一种重要途径。本文从众多的MCS-51反汇编软件中选择了几款专用软件加以介绍。

C51FBY.EXE

这是一款免费的Windows窗口界面的MCS-51反汇编软件,又称“智能反编译器”,因为它能自动区分代码段和数据段。因该软件有几个版本,下面是以V1.2版本来介绍的。

(一)使用方法

1.运行程序C51FBY.EXE,进入“智能反编译器”窗口界面(见图1)。

图1
图1 🔍原图 (747×460)

窗口的中间大面积区域为文件显示区域,它上面和右侧分别有操作按钮和设置区域。

2. 当需要反汇编时,可以按69按钮,弹出“打开”对话框(如图2所示)。

图2
图2 🔍原图 (443×229)

图2

图3
图3 🔍原图 (351×190)

被反汇编的程序代码可以是HEX或BIN格式的,选择了你指定的文件后,按70按钮会弹出一个对话框(如图3所示)。

如果选了“立即反编译”选项,按71按钮,文件显示区域很快就会将反汇编的结果显示出来,否则,文件显示区域将还是空白或者保留上次显示的内容,但目标代码文件已装入反汇编系统,随时可以对它进行反汇编。

3. 如果要设置反汇编选项,可以选择窗口右侧的各选项进行操作。

在“目标代码”选项中,如果选中“常规”,则反汇编出来的结果是简单地逐条语句全部翻译成汇编语句,包括数据块也当成了语句,这样的结果还需要我们去仔细分析;若选择了“优化”,其结果与“常规”差不多,但在每一条语句之后增加了对应的目标代码及地址作注释,便于我们分析检查;如选择“智能”,就能够自动识别数据块。但不要完全相信所识别出的数据块,因为它将所有的没有入口的程序段都认为是数据块。

为了将那些误认为是数据块的程序识别出来,可以在“指令入口”中添加新的入口地址,也可以删减错误的入口地址。

4. 在设置好反汇编选项后,直接点击72进行反汇编。反汇编的结果将会在文件显示区域中显示出来。

5. 若要保存反汇编的结果,点击73按钮,弹出“另存为”窗口。输入文件名后,按74按钮,即可将反汇编得到的结果以文本文件的形式保存下来。

(二)优缺点分析


1. 优点:

(1)Windows界面,使用简单、直观;(2)可选择需反汇编的地址段;(3)具有数据块自动识别功能;(4)对长跳转指令、子程序及中断程序返回点都作有标记,便于程序的阅读;(5)目标代码及其地址是以注释的形式标注在每条指令后面,文件内容排列也非常整齐,既便于对程序的分析,又不影响直接将反汇编所得到的汇编程序用于编译。


2. 缺点:

(1)对于数据块的识别还不够真正智能,使用时最好结合“优化”法来寻找更多的入口地址,从而剔除那些误判的数据块;(2)那些有专用名称的特殊功能寄存器位地址在汇编语句中显示的不是专用名,不便于对程序的阅读。

DIS51.EXE

这是一款DOS平台软件,能将BIN格式的目标代码文件反汇编生成一个包含了汇编程序及其对应的目标代码和地址的列表文件(扩展名为DIS)。虽然是英文提示,但使用方法较为简单。在DOS 提示符下进入到存有DIS51.EXE程序的目录,输入DIS51并回车便可进入到下一步操作程序。后面的反汇编过程根据软件提示可一步步进行。

该软件的优点是反汇编出来的语句可读性强; 对起位控制作用的语句分析清晰;对长跳转指令、子程序及中断程序返回点都作有标记,便于阅读。但其反汇编出来的列表文件不能直接用于编译; 免费版本限制了程序地址范围不能超过32M;只能反汇编BIN格式的文件。

D51.EXE

这也是一款基于DOS平台的免费软件,可将HEX或BIN格式的目标代码文件反汇编成汇编程序。该软件主要的优点是:操作简单;反汇编出来的汇编文件除包含了汇编程序外,还可将其目标代码及地址以注释的形式列在每条语句之后;对两个以上的连续0代码或连续0FFH代码不作为NOP或“MOV A,R7”语句处理,缩短了文件长度;既可反汇编HEX格式的目标代码文件,也可以反汇编BIN格式的目标代码文件, 但不能识别数据块,不可以设置反汇编地址范围。

DASM51.EXE

这款软件是典型的早期DOS平台软件,功能较为简单,只能反汇编BIN格式的目标代码文件,但也有其独到的特点。该软件可随意指定地址范围进行反汇编,可直接操作PC机内存中的数据。但其反汇编出来的列表文件不能直接用于编译,不能识别数据块。

关于MCS-51的反汇编软件还有许多,有的是单独使用的,有的是综合软件包中的一部分。本文所列的都是独立使用的专用软件,读者可以到相关的网站上下载。下载网址有:http://www.chipware.com.tw , http://ediy.yeah.net, http://www.laogu.com。

文/柳爱玲 刘小兰