打印

接到二手项目,程序是汇编语言,请求大神帮助

[复制链接]
楼主: gaocuntong
手机看帖
扫描二维码
随时随地手机跟帖
21
cjseng| | 2018-8-16 17:43 | 只看该作者 回帖奖励 |倒序浏览
我最长写过一个7000多行的汇编程序,其中液晶显示的菜单代码,就占了3000多行。
两年后,我自己也看不懂那个程序了,虽然程序有注释,但整个逻辑已经想不起来了。

使用特权

评论回复
22
yanhaijian| | 2018-8-16 20:06 | 只看该作者
我去年也接了个类似的项目,汇编只能作为参考,关键要了解功能。

使用特权

评论回复
23
伏尔加的鱼| | 2018-8-16 20:28 | 只看该作者
估计人家给你汇编也只是参考的  编译后烧写回去也不一定能正常运行,给你样机才是让你照着做的,还是自己写吧   就算是汇编写好了后期让你修修改改的还不够麻烦的

使用特权

评论回复
24
second_chan| | 2018-8-17 09:21 | 只看该作者
重新写吧,兄弟

使用特权

评论回复
25
ztb| | 2018-8-17 10:17 | 只看该作者
楼主这个汇编基础就不要做反向工程了!从机器码中读程序就像是**一份密电,需要有相当的经验和技巧,甚至熟悉到看到二进制码就知道它代表什么指令。一般的反汇编程序假设每个字节都是可执行代码,而实际上里面有许多是数据、字符、表格项等待非代码字节。好的汇编工具可以区别它们,但是也离不开人工标注。
有句话叫:偏见比无知距离真理更为遥远。如果被反汇编误导了就更跑冤枉路了。
比较可行的办法是充分了解其功能,从功能上仿制。但是,有许多功能是在特定条件下才能出现的。人家的代码里面溶入了人家多年的经验和见识甚至有某些诀窍,这就不是短时间可以模仿的了。
所以,对于自己非常数据的单片机和熟悉的应用领域,沉下心来反汇编倒是可以学到不少东西。

使用特权

评论回复
评论
tyw 2018-8-18 18:01 回复TA
86年我在电子所的一个同事,故意在程序中借用了数据区第一个字节,结果反汇编出来的东西面目全非,以此来达到程序加密.哈哈,反汇编确实不是轻易能啃的.有这功夫,自已写省力点. 
26
nuaabob| | 2018-8-17 11:17 | 只看该作者
这种项目,又难搞,又挣不着钱,楼主江湖经验太浅。

使用特权

评论回复
27
gaocuntong|  楼主 | 2018-8-17 12:00 | 只看该作者
gx_huang 发表于 2018-8-15 16:56
你上当了,别人根本没有源程序,只有解密的HEX文件,反汇编的。

使用特权

评论回复
28
gaocuntong|  楼主 | 2018-8-17 12:00 | 只看该作者
cjseng 发表于 2018-8-15 17:00
研究一下样机的功能,然后自己另起炉灶,可能还快一些

谢谢  或许是个好的选择

使用特权

评论回复
29
gaocuntong|  楼主 | 2018-8-17 12:01 | 只看该作者
资深技术 发表于 2018-8-15 19:48
告诉楼主的可以算是三手了

(⊙o⊙)…

使用特权

评论回复
30
gaocuntong|  楼主 | 2018-8-17 12:02 | 只看该作者
hjl714016 发表于 2018-8-15 21:44
如果是51单片机,其内部RAM中20H~2fH是可位寻址区,你懂的

我汇编只是看过书籍,没有单片机编过程。。。。

使用特权

评论回复
31
gaocuntong|  楼主 | 2018-8-17 12:02 | 只看该作者
wsmysyn 发表于 2018-8-15 23:12
无论代码大小,看懂只是时间问题;不过如果是反汇编的那种,很有可能会看不懂。。。
起码我之前用的一个小 ...

厉害了

使用特权

评论回复
32
gaocuntong|  楼主 | 2018-8-17 12:03 | 只看该作者
jackyhuang1988 发表于 2018-8-16 09:14
首先你要知道是什么单片机,每种单片机的汇编指令都不一样。通常手册会有指令表。 ...

嗯  我有单片机手册  我好好研究下

使用特权

评论回复
33
gaocuntong|  楼主 | 2018-8-17 12:04 | 只看该作者
gx_huang 发表于 2018-8-16 09:17
理解别人的汇编程序(人写的汇编),其实不算难。
难的是别人用C写的代码,超级复杂,再反汇编,基本无法看 ...

额  其实是公司收购的子公司的产品  现在要在我们公司生产维护    可是子公司给的代码就是这个样子的   倒是应该是人工写的

使用特权

评论回复
34
gaocuntong|  楼主 | 2018-8-17 12:05 | 只看该作者
ayb_ice 发表于 2018-8-16 16:00
问题二:SETB 16H,这是什么操作?SETB不是只能操作位吗?
问题三:JB 2,TA00      ;这个2是ram地址?

非常感谢,我明白了一点道道

使用特权

评论回复
35
gaocuntong|  楼主 | 2018-8-17 12:06 | 只看该作者
小鱼儿1045 发表于 2018-8-16 17:14
淡定,一切的问题,你都能从这个单片机的手册里面找到答案,静下心来,手册后面一般都有汇编代码指令的讲解 ...

谢谢   

使用特权

评论回复
36
gaocuntong|  楼主 | 2018-8-17 12:09 | 只看该作者
ztb 发表于 2018-8-17 10:17
楼主这个汇编基础就不要做反向工程了!从机器码中读程序就像是**一份密电,需要有相当的经验和技巧,甚至 ...

谢谢 ,  一看就是经验老道的工程师

使用特权

评论回复
37
cainiao518| | 2018-8-17 16:09 | 只看该作者
gaocuntong 发表于 2018-8-17 12:09
谢谢 ,  一看就是经验老道的工程师

再写一遍更容易些

使用特权

评论回复
38
ljc16888888| | 2018-8-17 19:13 | 只看该作者
估计又是抄板+反汇编,给点小钱叫别人分析。

使用特权

评论回复
39
icecut| | 2018-8-17 21:52 | 只看该作者
别急,先写个虚拟机。。。想找问题,在虚拟机里下钩子

使用特权

评论回复
40
小小电子爱好者| | 2018-8-18 08:17 | 只看该作者
巧了  昨天看到我们群里有说用bin文件反汇编来写的!不过代价太大,要不就是特别老手

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则