这个程序以前是8031+外部存储器的机器,老机器,外国人的,我们学习中。
里边有8155,8255等等,程序有5000行汇编,汇编是反汇编来的,15k程序,RAM基本都用完,没有解释,
请问读懂这个程序是否困难,去交给电子市场的话我要求能提供详细解释(详细到我能修改里边的参数),大概的报价是多少?
如果我们自己读这个程序(我们没有很丰富的汇编经验,有丰富的C,外设控制,多种MCU经验),是否可行,大概多久能看出门道?
请大家评估下给个参考意见。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
0028前面是中断向量入口,
然后是堆栈指针赋值,开全局中断,读外部总线的数据,调整TIMER1。程序里用了大量的子程序,到方便阅读,因为模块化的设计可以使得程序的功能单元相对简单。
还是要配合硬件图才好分析了。否则谁知道里面的标志位和IO在做什么呢。
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应该没问题
51仿真器,直接就可以分析了,这个程序直接和众多外部硬件打交道,这些外部设备你如何在AVR或STM内部建立?
还有,代码都没有分析完,你怎么转换?就算你一对一的翻译了,你能保证功能正确?简单的例子,51循环100次的延时和AVR循环100次的延时时间能一样?
还有仿真器是钱,难道花费的时间就不是钱?月薪1万的工程师,一个工作日的成本,基本就是500元了!
很怀疑你干没干过这种活!
有你那个麻烦,还不如在PROTEUS上仿真,这还是个路子
一周热门 更多>