这个程序以前是8031+外部存储器的机器,老机器,外国人的,我们学习中。
里边有8155,8255等等,程序有5000行汇编,汇编是反汇编来的,15k程序,RAM基本都用完,没有解释,
请问读懂这个程序是否困难,去交给电子市场的话我要求能提供详细解释(详细到我能修改里边的参数),大概的报价是多少?
如果我们自己读这个程序(我们没有很丰富的汇编经验,有丰富的C,外设控制,多种MCU经验),是否可行,大概多久能看出门道?
请大家评估下给个参考意见。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不懂控制,靠看代码反推控制。。。
不要说是汇编,就是C写的,你徒劳的可能就是99.9999%
这个机器就像是我国很牛的逆向工程?呵呵,我们老板好像三个月就能逆向一台,只是基于送到电子商城全拷贝,但是现在想调参数,更新,所以我们在寻找可行的更新方法。读懂他们的产品也是一种路,虽然我个人不看好,我个人倾向于独立开发而不是学习老外的成品,所以到这里来请求大家的观点。
【10楼】 kl818bc000 我不是马甲
为什么要模拟51的指令码,还要等完全转换到AVR或C语言,就可以用AVR或STM32的仿真器单步运行,直接用51的仿真器单步运行不是更好吗?
51的仿真器一大把,万利的,伟福的,菊阳的有的是,而且从描述来看.这个可能是AT89C52的芯片的使用了外部总线,这适合这些仿真器.
vipcff 我觉得,这个不会太复杂,过期的MCU技术还是要比现在的落后很多的,而且很多芯片业不好买了,买到也是拆机件,质量没有保证
-----------------------------------------------------------------------
楼主说了,是8031,不是AT89C52,8031是不带程序存储器(ROMLESS)的8051
标准51由于没有内嵌类似JTAG的仿真功能,第三方的仿真器价格和功能,是不能和内置JTAG且已经开源的
AVR JTAG-ICE和ARM JLINK相比拟的
而且楼主的8031需要的外设多,才建议直接转到容量大,外设丰富且价格便宜的AVR或STM32
直接逆向没什么难度,很多人都能作,但很多元器件都已经不好买且贵,如果能转换到主流的CPU,成本就可以降下来,先抢到市场
再借用仿真器慢慢读懂其算法,就可以调参数,加功能
这你就老外了,8031不带程序存储器的仿真器,比JTAG的要好用的多了,看来你没有用过51的仿真器啊!
标准51的仿真器,就是仿真cpu,拔掉真的cpu,插上仿真头,8155,8255,什么的都是真实时效的运行
你看看仿真器的功能:
条件断点
多种采样方式便于对用户板不同的存储器进行条件触发或者条件断点,又可以使用“事件计数”功能,通过指定程序第几次执行到指定地址发生时,触发逻辑分析工作,然后根据事件发生的前后几次采样数据,进行总线采样的过程分析。
触发逻辑分析也可以对 XTATA 外部数据存储器、CODE 程序存储器、SFR 特殊功能存储器、REG 内部存储器、XDATA数据范围、CODE程序范围、LAPOD(外接测试探勾信号)输入,进行 4种条件采样分析。
代码覆盖:
在运行复杂结构的程序时,可以实时地了解程序的执行情况,可以动态地观察到指定条件下,某段代码是否被执行了。在用户程序运行时,如用单步、断点或全速运行,利用该功能随时观察到程序执行情况,能观察到在源程序, CPU窗口、CODE代码区窗口、程序运行过的指令以不同颜 {MOD}作标记显示。例如:中断有没有响应,只需看中断子程序有没有变颜 {MOD},子程序有无调用,只需看子程序模块有无变颜 {MOD}即可。
程序时效分析:
分析程序中,过程、函数以及每条指令的运行时间,执行次数及占整个程序程序运行时间的百分比,了解到一个程序多个函数中某个函数运行的效率有多高,执行了多长时间,代码覆盖优化到什么程度,利用该功能就可以优化程序,进一步改善程序的性能,从而改善程序的结构,开发出更有效、更稳定的程序。对提高程序效率,检查程序错误提供帮助。
数据时效分析:
统计每个变量、存贮单元的访问次数及占整个程序访问次数的百分比,即统计分析当前运行的程序中各变量、数据单元是否被读/写和读/写的次数及读/写次数占总读/写次数的百分比,变量是被写过,还是变量被读过,变量是先写后读,还是先读后写,统计出读/写的次数。如:对某一段XDATA变量检查是否被读/写过,是否读/写正确,可利用该功能完成。对提高程序效率、检查程序错误提供帮助。
影子存储器:
在用户程序运行时,可以观察外部存贮器内容的变化,设计师无须停下程序,也能直观、动态监视外部数据变化。影子存储器就是在仿真环境中为外部存储器建立一个影子,可以在程序运行时,动态地观察到外部存储器的状态,利用该功能可对调试实时数据采集控制程序提供有力的帮助。
条件断点:支持数据断点、程序断点、内部特殊功能寄存器断点、内部寄存器断点、数据范围断点、程序范围断点。外部测试点断点及最多65536次断点计数。
利用程序范围断点,立刻就可以发现程序跑飞.
0003: 74 04 MOV A,#04H
0005: 02 06 DC LJMP 06DCH
0008: 00 NOP
0009: 00 NOP
000A: 00 NOP
000B: 74 06 MOV A,#06H
000D: 02 06 DC LJMP 06DCH
0010: 00 NOP
0011: 00 NOP
0012: 00 NOP
0013: 74 0C MOV A,#0CH
0015: 02 06 DC LJMP 06DCH
0018: 00 NOP
0019: 00 NOP
001A: 00 NOP
001B: 02 22 49 LJMP 2249H
001E: 00 NOP
001F: 00 NOP
0020: 00 NOP
0021: 00 NOP
0022: 00 NOP
0023: 74 06 MOV A,#06H
0025: 02 06 DC LJMP 06DCH
0028: 75 81 69 MOV SP,#69H
002B: 12 17 22 LCALL 1722H
002E: 12 04 22 LCALL 0422H
0031: D2 AF SETB EA
0033: 12 0A F5 LCALL 0AF5H
0036: D2 10 SETB 22H.0
0038: 12 10 F2 LCALL 10F2H
003B: 90 80 02 MOV DPTR,#8002H
003E: E0 MOVX A,@DPTR
003F: 30 E7 69 JNB ACC.7,00ABH
0042: 12 07 B8 LCALL 07B8H
0045: 12 0D 37 LCALL 0D37H
0048: 12 04 92 LCALL 0492H
004B: D2 1D SETB 23H.5
004D: 12 0D 44 LCALL 0D44H
0050: 12 17 22 LCALL 1722H
0053: 12 16 AB LCALL 16ABH
0056: 12 01 8F LCALL 018FH
0059: 12 08 BF LCALL 08BFH
005C: E5 23 MOV A,23H
005E: 44 E0 ORL A,#0E0H
0060: F4 CPL A
0061: 70 EA JNZ 004DH
0063: 12 0A 05 LCALL 0A05H
0066: 12 09 15 LCALL 0915H
0069: 12 07 B8 LCALL 07B8H
006C: 12 01 8F LCALL 018FH
006F: 12 07 F8 LCALL 07F8H
0072: 12 0E FC LCALL 0EFCH
0075: 12 0D 53 LCALL 0D53H
0078: 12 0E 6F LCALL 0E6FH
007B: 12 01 E6 LCALL 01E6H
007E: 12 10 F2 LCALL 10F2H
0081: C3 CLR C
0082: 12 12 0C LCALL 120CH
0085: 12 02 4B LCALL 024BH
0088: 12 12 9F LCALL 129FH
008B: 12 07 17 LCALL 0717H
008E: 12 11 91 LCALL 1191H
0091: 12 0F AC LCALL 0FACH
0094: 12 0B 49 LCALL 0B49H
0097: 12 05 CF LCALL 05CFH
009A: 12 17 05 LCALL 1705H
009D: 12 17 15 LCALL 1715H
00A0: 12 08 9F LCALL 089FH
00A3: D2 A8 SETB EX0
00A5: C2 B4 CLR P3.4
00A7: D2 B4 SETB P3.4
00A9: 80 BE SJMP 0069H
00AB: 74 4C MOV A,#4CH
00AD: 24 01 ADD A,#01H
00AF: F5 58 MOV 58H,A
00B1: 74 17 MOV A,#17H
00B3: 34 00 ADDC A,#00H
00B5: F5 59 MOV 59H,A
00B7: 75 8B 9F MOV TL1,#9FH
00BA: 75 8D AE MOV TH1,#0AEH
00BD: D2 AB SETB ET1
00BF: D2 8E SETB TR1
00C1: 74 FF MOV A,#0FFH
00C3: 12 17 2E LCALL 172EH
00C6: 12 07 B8 LCALL 07B8H
00C9: 74 0E MOV A,#0EH
00CB: B5 18 F8 CJNE A,18H,00C6H
00CE: E4 CLR A
00CF: 12 17 2E LCALL 172EH
00D2: 12 07 B8 LCALL 07B8H
00D5: E4 CLR A
00D6: B5 18 F9 CJNE A,18H,00D2H
00D9: 12 18 5A LCALL 185AH
00DC: 12 01 8F LCALL 018FH
00DF: 12 25 D2 LCALL 25D2H
00E2: E5 23 MOV A,23H
00E4: 44 EE ORL A,#0EEH
00E6: F4 CPL A
00E7: 70 F0 JNZ 00D9H
00E9: 12 26 94 LCALL 2694H
00EC: 12 17 D9 LCALL 17D9H
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
012C: 75 81 69 MOV SP,#69H
012F: 79 04 MOV R1,#04H
0131: 7B 58 MOV R3,#58H
0133: 12 05 F9 LCALL 05F9H
0136: F7 MOV @R1,A
0137: 0B INC R3
0138: 09 INC R1
0139: BB D2 F7 CJNE R3,#0D2H,0133H
013C: 80 FE SJMP $
013E: C2 94 CLR P1.4
0140: D2 95 SETB P1.5
0142: E5 30 MOV A,30H
0144: 90 80 01 MOV DPTR,#8001H
0147: C2 E6 CLR ACC.6
0149: F0 MOVX @DPTR,A
014A: E8 MOV A,R0
014B: 90 14 F8 MOV DPTR,#14F8H
014E: 93 MOVC A,@A+DPTR
014F: 78 05 MOV R0,#05H
0151: 13 RRC A
0152: 92 95 MOV P1.5,C
0154: 00 NOP
0155: D2 94 SETB P1.4
0157: B8 01 02 CJNE R0,#01H,015CH
015A: 80 04 SJMP 0160H
015C: C2 94 CLR P1.4
015E: D8 F1 DJNZ R0,0151H
0160: D2 95 SETB P1.5
0162: A2 95 MOV C,P1.5
0164: C2 94 CLR P1.4
0166: E4 CLR A
0167: 78 08 MOV R0,#08H
0169: D2 94 SETB P1.4
016B: 00 NOP
016C: C2 94 CLR P1.4
016E: 00 NOP
016F: A2 95 MOV C,P1.5
0171: 33 RLC A
0172: D8 F5 DJNZ R0,0169H
0174: F8 MOV R0,A
0175: E5 30 MOV A,30H
0177: 90 80 01 MOV DPTR,#8001H
017A: D2 E6 SETB ACC.6
017C: F0 MOVX @DPTR,A
017D: E8 MOV A,R0
017E: 22 RET
017F: 85 42 3E MOV 3EH,42H
0182: 85 43 3F MOV 3FH,43H
0185: D5 3C 06 DJNZ 3CH,018EH
0188: 75 3C 18 MOV 3CH,#18H
018B: 85 41 3D MOV 3DH,41H
018E: 22 RET
018F: 7B 03 MOV R3,#03H
0191: 7C 00 MOV R4,#00H
0193: 7D 08 MOV R5,#08H
0195: 7E 00 MOV R6,#00H
0197: 7F 00 MOV R7,#00H
0199: A8 04 MOV R0,04H
019B: 12 01 3E LCALL 013EH
019E: 2E ADD A,R6
019F: FE MOV R6,A
01A0: E4 CLR A
01A1: 3F ADDC A,R7
01A2: FF MOV R7,A
01A3: A8 05 MOV R0,05H
01A5: 08 INC R0
01A6: D8 FE DJNZ R0,$
01A8: DD EF DJNZ R5,0199H
01AA: 78 03 MOV R0,#03H
01AC: C3 CLR C
01AD: EF MOV A,R7
01AE: 13 RRC A
01AF: FF MOV R7,A
01B0: EE MOV A,R6
01B1: 13 RRC A
01B2: FE MOV R6,A
01B3: D8 F7 DJNZ R0,01ACH
01B5: E4 CLR A
01B6: 3E ADDC A,R6
01B7: FE MOV R6,A
01B8: EC MOV A,R4
01B9: 24 41 ADD A,#41H
01BB: F8 MOV R0,A
01BC: EE MOV A,R6
01BD: 26 ADD A,@R0
01BE: 13 RRC A
01BF: 34 00 ADDC A,#00H
01C1: F6 MOV @R0,A
01C2: 0C INC R4
01C3: DB CE DJNZ R3,0193H
01C5: 12 01 7F LCALL 017FH
01C8: 22 RET
01C9: 20 0C 03 JB 21H.4,01CFH
01CC: D2 2B SETB 25H.3
01CE: 22 RET
01CF: 30 0F 13 JNB 21H.7,01E5H
01D2: 20 0D 10 JB 21H.5,01E5H
01D5: D2 0D SETB 21H.5
01D7: D2 0E SETB 21H.6
01D9: 85 3D 45 MOV 45H,3DH
01DC: C2 22 CLR 24H.2
01DE: C2 23 CLR 24H.3
01E0: D2 16 SETB 22H.6
01E2: 75 51 0A MOV 51H,#0AH
01E5: 22 RET
01E6: 20 27 53 JB 24H.7,023CH
01E9: C2 0F CLR 21H.7
01EB: C2 13 CLR 22H.3
01ED: C2 14 CLR 22H.4
01EF: C2 15 CLR 22H.5
01F1: 75 82 D2 MOV DPL,#0D2H
01F4: 12 06 C2 LCALL 06C2H
01F7: F8 MOV R0,A
01F8: A3 INC DPTR
01F9: 12 06 C2 LCALL 06C2H
01FC: F9 MOV R1,A
01FD: E5 3D MOV A,3DH
01FF: 20 0C 14 JB 21H.4,0216H
0202: 30 0F 06 JNB 21H.7,020BH
0205: 24 03 ADD A,#03H
0207: 50 02 JNC 020BH
0209: 74 FF MOV A,#0FFH
020B: C3 CLR C
020C: 98 SUBB A,R0
020D: 40 06 JC 0215H
020F: D2 0F SETB 21H.7
0211: D2 13 SETB 22H.3
0213: C2 0E CLR 21H.6
0215: 22 RET
0216: C3 CLR C
0217: 98 SUBB A,R0
0218: 40 F5 JC 020FH
021A: C3 CLR C
021B: E5 3D MOV A,3DH
021D: 99 SUBB A,R1
021E: 40 07 JC 0227H
0220: D2 0F SETB 21H.7
0222: D2 14 SETB 22H.4
0224: C2 0E CLR 21H.6
0226: 22 RET
0227: 30 0E 0C JNB 21H.6,0236H
022A: C3 CLR C
022B: E5 3D MOV A,3DH
022D: 95 45 SUBB A,45H
022F: 40 E4 JC 0215H
0231: C3 CLR C
0232: 94 08 SUBB A,#08H
0234: 40 DF JC 0215H
0236: D2 0F SETB 21H.7
0238: D2 15 SETB 22H.5
023A: C2 0E CLR 21H.6
023C: 22 RET
023D: 78 14 MOV R0,#14H
023F: 79 03 MOV R1,#03H
0241: 90 14 3B MOV DPTR,#143BH
0244: E6 MOV A,@R0
0245: 93 MOVC A,@A+DPTR
0246: F6 MOV @R0,A
0247: 08 INC R0
0248: D9 FA DJNZ R1,0244H
024A: 22 RET
024B: E4 CLR A
024C: 30 0C 39 JNB 21H.4,0288H
024F: 20 13 36 JB 22H.3,0288H
0252: 74 0A MOV A,#0AH
0254: 20 14 2A JB 22H.4,0281H
0257: 75 82 D2 MOV DPL,#0D2H
025A: 12 06 C2 LCALL 06C2H
025D: F9 MOV R1,A
025E: A3 INC DPTR
前310行的程序
一周热门 更多>