搜索
bottom↓
回复: 11

用reAVR反汇编的汇编程序为什么在AVRSTUDIO 中无法编译通过,请问该如何解决呢

[复制链接]

出0入0汤圆

发表于 2009-7-22 16:16:38 | 显示全部楼层 |阅读模式
请问,我用avrstudio+winavr写的一个mega64程序(bin文件有40多k bytes),由于现在有特殊的需要,需要对MEGA64的hex文件反汇编,然后在汇编语言的基础上修改指令,然后生成新的hex文件。我用reAVR生成了反汇编文件,然后用它在AVR STUDIO中建立了新的项目,编译的时候,AVR Studio报错如下:
C:\asm3\test.asm(421): error: Relative branch out of reach
C:\asm3\test.asm(429): error: Relative branch out of reach
C:\asm3\test.asm(434): error: Relative branch out of reach
C:\asm3\test.asm(436): error: Relative branch out of reach
C:\asm3\test.asm(440): error: Undefined symbol: L018F
C:\asm3\test.asm(4813): error: Relative branch out of reach
这些错误从字面上很好理解,可是,他们是由hex文件反汇编过来,肯定不能随便修改的,所以,我恳请对反汇编有经验的人给我提点建议,应该怎样修改,谢谢。另外,我的hex文件中包含一些数据,而反汇编的时候,reAVR将数据也反汇编成指令。请问这种数据对新的汇编工程的编译有影响吗?
    我曾经写了一个小的mega64程序,编译生成的hex文件反汇编成汇编程序,然后建立AVRSTUDIO工程,编译可以通过,新生成的hex文件也可以正常执行,可是为什么我的大程序却不行呢?请高手指点,谢谢。
    附件为我的hex文件和反汇编程序,谢谢

mega64的hex文件和反汇编出来的程序ourdev_463516.rar(文件大小:78K) (原文件名:asm2.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-7-22 16:22:35 | 显示全部楼层
反汇编出错了呗

LZ明显是想改别人的程序,
自己的程序哪有说放着源码不用的...

出0入0汤圆

发表于 2009-7-22 17:19:46 | 显示全部楼层
1楼】 snoopyzz
积分:1100
派别:
等级:------
来自:
反汇编出错了呗

LZ明显是想改别人的程序,
自己的程序哪有说放着源码不用的...  
-----------------------------------
同意1楼看法

为什么要"想改别人的程序"?
盗窃吗?

出0入0汤圆

 楼主| 发表于 2009-7-22 17:51:07 | 显示全部楼层
上面两位,我忘了说我要这样做的目的了,我这样不改源代码却要反汇编修改hex文件,确实是因为我有极其特殊的原因。
    MEGA64的源程序就是我自己写的,但是因为一些非常特殊的原因,我需要修改生成的hex文件(bin文件)内数据存储的格式,比如,我要在bin文件中,每隔128字节放一个nop指令,不管是code段还是data段,都要放,我的需求太特殊,所以必须通过反汇编来改。如果您非要知道我为什么有这样极其特殊的需求,请您给我发邮件,我会告诉您的。谢谢!



    另外,如果您真能解决我的问题,找到问题之所在,那我真要谢谢你。
     我的QQ:27577012
     email:junhuaven#gmail.com

出0入0汤圆

发表于 2009-7-22 18:32:41 | 显示全部楼层
40多K,转成汇编,可是一个庞大的工程啊。我不会,呵呵。

出0入0汤圆

发表于 2009-7-22 18:41:13 | 显示全部楼层
我知道了,LZ上是次那个升级协议改掉了的那贴吧?

出0入0汤圆

 楼主| 发表于 2009-7-22 19:20:40 | 显示全部楼层
是的,就是上次升级协议那个,还请各路高手帮我出出主意啊,谢谢呀

出0入0汤圆

发表于 2009-10-11 22:16:22 | 显示全部楼层
我转换完成后也是出错 ,上面有很多的
         .word        0x005D        ; pc=0x000E(0x001C)


        .word        0xFFFF        ; pc=0x012C(0x0258)
        .word        0xFFFF        ; pc=0x012D(0x025A)
        .word        0xFFFF        ; pc=0x012E(0x025C)
        .word        0xFFFF        ; pc=0x012F(0x025E)
        .word        0xFFFF        ; pc=0x0130(0x0260)
        .word        0xFFFF        ; pc=0x0131(0x0262)
        .word        0xFFFF        ; pc=0x0132(0x0264)
        .word        0xFFFF        ; pc=0x0133(0x0266)
        .word        0xFFFF        ; pc=0x0134(0x0268)
        .word        0xFFFF        ; pc=0x0135(0x026A)
        .word        0xFFFF        ; pc=0x0136(0x026C)
        .word        0xFFFF        ; pc=0x0137(0x026E)
        .word        0xFFFF        ; pc=0x0138(0x0270)
这样的语句,不知道是什么意思,有什么作用。

出0入0汤圆

发表于 2009-10-12 08:27:03 | 显示全部楼层
看了你的“如何实现MEGA64单片机FLASH特殊存储格式?”,你想在“比如0X7F,0XFF,0X17F,0X1FF,0X27F,0X2FF,0X37F,0X3FF…等些个地方分别定义一个无用的字节”是不可能的,因为AVR一条指令至少是两字节,所以至少要定义两个字节,否则程序会出错。

出0入0汤圆

发表于 2009-10-12 15:01:43 | 显示全部楼层
AVRASM: AVR macro assembler 2.1.9 (build 90 Jul  5 2006 11:06:16)
Copyright (C) 1995-2006 ATMEL Corporation

F:\disasm\asm2\test.asm(1): Including file 'C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m64def.inc'
F:\disasm\asm2\test.asm(21802): No EEPROM data, deleting F:\disasm\asm2\test.eep

ATmega64 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x00baee  46560   1294  47854   65536  73.0%
[.dseg] 0x000100 0x000100      0      0      0    4096   0.0%
[.eseg] 0x000000 0x000000      0      0      0    2048   0.0%

Assembly complete, 0 errors. 0 warnings
点击此处下载 ourdev_490729.rar(文件大小:37K) (原文件名:test.rar)

出0入0汤圆

发表于 2010-9-28 09:03:20 | 显示全部楼层
记号

出0入0汤圆

发表于 2012-12-19 21:43:45 | 显示全部楼层
记号啦
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表