发明名称 一种单片机反汇编的方法
摘要 本发明公开了一种单片机反汇编的方法,根据汇编语言指令系统的操作码逐层分析指令,能清晰、快速分析指令,并对被跳转的地址和被调用的地址加入地址标号,有利于程序的阅读,且可使用汇编器重新汇编,同时采用两次分析机器码,同时生成LST列表文件和ASM可再汇编文件。采用本发明,有助于源代码编译后机器码的检查和优化编译,也可用于找回丢失的源代码。
申请公布号 CN102591698A 申请公布日期 2012.07.18
申请号 CN201110400040.1 申请日期 2011.12.05
申请人 福建二菱电子有限公司 发明人 卢琼辉
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 厦门市首创君合专利事务所有限公司 35204 代理人 连耀忠
主权项 一种单片机反汇编的方法,其特征在于:包括以下步骤:步骤A,PC机的显示界面显示输入框,向输入框输入待分析的机器码文件名、待生成的反汇编目标LST文件名和待生成的反汇编目标ASM文件名;步骤B,PC机的处理器建立临时文件并将所述的临时文件初始化为0,同时设置指令长度计算器并将所述的指令计算器初始化为0,PC的处理器将临时文件的地址和机器码文件的地址均置为0;步骤C,PC机的处理器将机器码文件转化成二进制格式后开始第一遍分析机器码文件并获得该机器码文件的总指令长度,PC机的处理器将临时文件的地址和机器码文件的地址均加1;步骤D,PC机的处理器开始分析机器码文件的地址所对应的指令并获得该指令的指令长度,同时将该指令长度加入指令长度计数器中;步骤E,PC机的处理器分析步骤D所述机器码文件的地址所对应的指令,如果该指令是跳转指令或者调用指令,将跳转标志或者调用标志写入临时文件对应的地址处后转到步骤F,否则直接转到步骤F;步骤F,PC机的处理器将步骤D所述机器码文件的地址所对应的指令的地址、机器码和该指令反汇编出来的汇编指令写入反汇编目标LST文件中;步骤G,PC机的处理器将步骤D所述的机器码文件对应的地址与步骤D所述的指令长度相加,得到机器码文件下一条指令的起始地址,PC机的处理器将步骤C所述的临时文件对应的地址与步骤D所述的指令长度相加,得到临时文件下一条指令的起始地址,PC机的处理器判断指令计算器中的数值是否等于总指令长度,如果是则转到步骤H,否则转到步骤D;步骤H,PC机的处理器将临时文件的地址、机器码文件的地址和指令计算器重新均置为0,并第二遍分析机器码文件并获得该机器码 文件的总指令长度,PC机的处理器将临时文件的地址和机器码文件的地址均加1,PC机的处理器获得机器码文件的地址所对应指令的指令长度,同时将该指令长度加入指令长度计数器中;步骤I,PC机的处理器开始分析所述机器码文件的地址处所对应的机器码指令并同时查询临时文件中对应的地址处是否有跳转标志或者调用标志,如果是调用标志或者跳转标志则均转到步骤J,否则转到步骤K;步骤J,PC机的处理器将任意一个字母和步骤I所述机器码文件的地址写入反汇编目标ASM文件中;步骤K,PC机的处理器将步骤I所述机器码文件的地址所对应的机器码指令反汇编出来的汇编指令写入反汇编目标ASM文件中;步骤L,PC机的处理器将步骤I所述的机器码文件对应的地址与步骤H所述的指令长度相加,得到机器码文件下一条指令的起始地址,PC机的处理器将步骤I所述的临时文件对应的地址与步骤H所述的指令长度相加,得到临时文件下一条指令的起始地址,PC机的处理器判断指令计算器中的数值是否等于总指令长度,如果是结束反汇编,否则转到步骤I。
地址 363000 福建省漳州市漳华路47号