论坛风格切换切换到宽版
  • 5972阅读
  • 9回复

关于BIN,HEX和反汇编的一个问题 [复制链接]

上一主题 下一主题
在线ahhui
 
发帖
7459
只看楼主 倒序阅读 0楼 发表于: 2005-02-20
我想问一下,对于用asm编译好的hex文件,或者是从eprom里读出来的hex文件,用相应的反汇编工具汇编出来,应该语句是一样的吧?就是说和源程序相比是没有损失或变化的,同样的用bin2hex工具把bin格式文件转换成hex后,再反汇编也是上边的结果。只有从exe文件反编译出来的东西才会和源文件不同,这样说是否正确?
离线bg4jj
发帖
5094
只看该作者 1楼 发表于: 2005-02-20
不对
吃的是草 挤出来的是奶
反之就不对了
哈哈
离线BG4UVR
发帖
11287
只看该作者 2楼 发表于: 2005-02-21
是的,从bin或hex反汇编出来的代码,和原代码的 程序结构 是完全一样的。

但是! 这种代码没有注释,而且没有程序段的标号,都是直接地址,所以这种程序可读性是极差的。另外,如果源程序是用c语言写的,那么反汇编出来的asm代码的可读性会更差!
在线ahhui
发帖
7459
只看该作者 3楼 发表于: 2005-02-21
我赞同bg4uvr 的意见,因为对于汇编成的hex语言,实际上是机器语言,可以被机器理解和直接执行的。汇编的过程实际上应该就是汇编工具把汇编语言翻译成机器语言的过程。

为了验证这个想法,昨天写了一小段z80的程序,用tasm汇编成hex文件,可以看到和书上的参考指令是对应的;然后又用dasmz80反汇编成asm文件,哈哈。果然和原来一样。
离线bg4jj
发帖
5094
只看该作者 4楼 发表于: 2005-02-21
程序简单时效果不明显
离线Bazooka
只看该作者 5楼 发表于: 2005-02-23
自己没有试过,不过,高手必备的吧。
语句熟悉了,不用标号,也一样明白。
离线bg4iww
发帖
8697
只看该作者 6楼 发表于: 2005-02-24
反汇编之后相关的伪指令定义以及变量定义一类的东西形式就变了,程序的可懂性有所下降,不过反汇编出来的程序是根原程序没什么两样的。
离线BD6KF
发帖
1126
只看该作者 7楼 发表于: 2005-03-01
不一样,如果用同一种编程语言,编译在反汇编,出来的结果是一样的,如果用其他编程,在拿来反汇编,出来的结果会让你啼笑皆非。
离线bg4iww
发帖
8697
只看该作者 8楼 发表于: 2005-03-04
呵呵,是啊,需要有个编程语言相同的大前提
离线Sullivan
发帖
4817
只看该作者 9楼 发表于: 2005-03-05
反编译会有些问题
比如一些数字会被翻译成操作码
子程序名会成地址