请弄过汇编的提个意见,关于读5000行汇编东东...

2020-01-20 19:09发布

这个程序以前是8031+外部存储器的机器,老机器,外国人的,我们学习中。
里边有8155,8255等等,程序有5000行汇编,汇编是反汇编来的,15k程序,RAM基本都用完,没有解释,
请问读懂这个程序是否困难,去交给电子市场的话我要求能提供详细解释(详细到我能修改里边的参数),大概的报价是多少?
如果我们自己读这个程序(我们没有很丰富的汇编经验,有丰富的C,外设控制,多种MCU经验),是否可行,大概多久能看出门道?
请大家评估下给个参考意见。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
83条回答
flyingfish
1楼-- · 2020-01-25 19:23
呵呵,好久没看到这么亲切的汇编代码了。开始用51时,就是先用汇编的。

0028前面是中断向量入口,
然后是堆栈指针赋值,开全局中断,读外部总线的数据,调整TIMER1。程序里用了大量的子程序,到方便阅读,因为模块化的设计可以使得程序的功能单元相对简单。

还是要配合硬件图才好分析了。否则谁知道里面的标志位和IO在做什么呢。
agency
2楼-- · 2020-01-25 19:40
要配合硬件图才好分析
kl818bc000
3楼-- · 2020-01-26 00:07
00EF: 12 07 B8  LCALL 07B8H
00F2: 12 23 E6  LCALL 23E6H
00F5: 12 01 8F  LCALL 018FH
00F8: 12 07 F8  LCALL 07F8H
00FB: 12 1C 21  LCALL 1C21H
00FE: 12 1D 9E  LCALL 1D9EH
0101: 12 1E 2E  LCALL 1E2EH
0104: 12 28 C5  LCALL 28C5H
0107: 12 27 21  LCALL 2721H
010A: 12 25 F8  LCALL 25F8H
010D: 12 1A 8C  LCALL 1A8CH
0110: 12 18 06  LCALL 1806H
0113: 12 24 AB  LCALL 24ABH
0116: 12 19 BB  LCALL 19BBH
0119: 12 24 FF  LCALL 24FFH
011C: 12 0B 49  LCALL 0B49H
011F:    D2 01  SETB  20H.1
0121: 12 05 CF  LCALL 05CFH
0124: 12 2A 89  LCALL 2A89H
0127: 12 25 C3  LCALL 25C3H
012A:    80 C3  SJMP  00EFH

这一段是主程序,之前的是中断向量和初始程序,之后的是子程序

是用汇编写的,简洁清楚,作者是个高手,不过建议再用IDA反汇编一次,会比这样清楚很多

要转成C或AVR应该没问题
marshallemon
4楼-- · 2020-01-26 00:58
 精彩回答 2  元偷偷看……
czzhouyun
5楼-- · 2020-01-26 02:48
分析过别人用C写的反汇编的程序,5K行,用一个月,没看懂,重新编写用了1周,搞定
zhxzhx
6楼-- · 2020-01-26 05:11
【41楼】 kl818bc000 我不是马甲

   51仿真器,直接就可以分析了,这个程序直接和众多外部硬件打交道,这些外部设备你如何在AVR或STM内部建立?

还有,代码都没有分析完,你怎么转换?就算你一对一的翻译了,你能保证功能正确?简单的例子,51循环100次的延时和AVR循环100次的延时时间能一样?

还有仿真器是钱,难道花费的时间就不是钱?月薪1万的工程师,一个工作日的成本,基本就是500元了!

很怀疑你干没干过这种活!

有你那个麻烦,还不如在PROTEUS上仿真,这还是个路子

一周热门 更多>