共2条
1/1 1 跳转至页
BIN,HEX 关于BIN,HEX和反汇编的一个问题

问
我想问一下,对于用ASM编译好的HEX文件,或者是从EPROM里读出来的HEX文件,用相应的反汇编工具汇编出来,应该语句是一样的吧?就是说和源程序相比是没有损失或变化的,同样的用BIN2HEX工具把BIN格式文件转换成HEX后,再反汇编也是上边的结果。只有从EXE文件反编译出来的东西才会和源文件不同,这样说是否正确?
答 1:
研究这个干吗?很有前途么?网上的源代码数都数不清,要什么没有?干吗非要做一些费力不讨好的东东呢?
不解~~ 答 2: 不明白楼主的问题 答 3: 语句是一样的 答 4: 肯定有所不同 答 5: 已经明白了。这个问题我后来又考虑一下,再别的论坛上也问了一下,已经弄明白了。因为对于汇编成的HEX语言,实际上是机器语言,可以被机器理解和直接执行的。汇编的过程实际上应该就是汇编工具把汇编语言翻译成机器语言的过程。
为了验证这个想法,昨天写了一小段Z80的程序,用TASM汇编成HEX文件,可以看到和书上的参考指令是对应的;然后又用DASMZ80反汇编成ASM文件,哈哈。果然和原来一样。 答 6: 反汇编之后和源程序相比,要少很多内容。首先所有注释不会存在,其次所有伪指令都不会出现,第三为便于阅读的标号等均消失。所有常数表必须知道这是常数表才可以反汇编成常数表,否则反汇编成一堆无意义指令,并可能导致其后所有指令错误。
从EXE文件反汇编,原则上与从HEX文件反汇编没有很大区别。但PC机需考虑的问题远比单片机要多,是非常困难的工作。 答 7: 难在代码数据自动分离否则就会产生很多火星人编出的代码. 答 8: tks谢谢各位解答,maychang 说的很有道理。
不解~~ 答 2: 不明白楼主的问题 答 3: 语句是一样的 答 4: 肯定有所不同 答 5: 已经明白了。这个问题我后来又考虑一下,再别的论坛上也问了一下,已经弄明白了。因为对于汇编成的HEX语言,实际上是机器语言,可以被机器理解和直接执行的。汇编的过程实际上应该就是汇编工具把汇编语言翻译成机器语言的过程。
为了验证这个想法,昨天写了一小段Z80的程序,用TASM汇编成HEX文件,可以看到和书上的参考指令是对应的;然后又用DASMZ80反汇编成ASM文件,哈哈。果然和原来一样。 答 6: 反汇编之后和源程序相比,要少很多内容。首先所有注释不会存在,其次所有伪指令都不会出现,第三为便于阅读的标号等均消失。所有常数表必须知道这是常数表才可以反汇编成常数表,否则反汇编成一堆无意义指令,并可能导致其后所有指令错误。
从EXE文件反汇编,原则上与从HEX文件反汇编没有很大区别。但PC机需考虑的问题远比单片机要多,是非常困难的工作。 答 7: 难在代码数据自动分离否则就会产生很多火星人编出的代码. 答 8: tks谢谢各位解答,maychang 说的很有道理。
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】mcxa156使用低功耗定时器适配硬件RTC框架被打赏26分 | |
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 |