标题:
请高手帮忙解读这段PIC单片机程序!
[打印本页]
作者:
3310mad2
时间:
2018-10-16 15:10
标题:
请高手帮忙解读这段PIC单片机程序!
下面程序是PIC反汇编出来,哪位高手帮忙看一下,能不能读懂
00068 NOP
0006A LFSR 0, 0x100
0006C NOP
0006E MOVLW 0x46
00070 MOVWF 0xff6, ACCESS
00072 MOVLW 0x12
00074 MOVWF 0xff7, ACCESS
00076 MOVLW 0
00078 MOVWF 0xff8, ACCESS
0007A LFSR 0x1, 0xa2
0007C NOP
0007E CALL 0x96, 0
00080 NOP
00082 CLRF 0xff8, ACCESS
00084 GOTO 0x16a4
00086 NOP
00088 CLRF 0xfee, ACCESS
0008A MOVF 0xfe5, W, ACCESS
0008C MOVF 0xfe1, W, ACCESS
0008E BNZ 0x88
00090 MOVF 0xfe2, W, ACCESS
00092 BNZ 0x88
00094 RETURN 0
00096 TBLRD*+
00098 MOVFF 0xff5, 0xfee
0009A NOP
0009C MOVF 0xfe5, W, ACCESS
0009E MOVF 0xfe1, W, ACCESS
000A0 BNZ 0x96
000A2 MOVF 0xfe2, W, ACCESS
000A4 BNZ 0x96
000A6 RETURN 0
000A8 NOP
作者:
yzwzfyz
时间:
2018-10-16 22:32
本帖最后由 yzwzfyz 于 2018-10-18 02:50 编辑
学单片机,一个极其重要方式就是,读通单片机的指令系统,读通了,单片机也就会了90%以上了。
作者:
3310mad2
时间:
2018-10-17 09:00
yzwzfyz 发表于 2018-10-16 22:32
学单片机,一个极其重要方式就是,读能单片机的指令系统,读通了,单片机也就会了90%以上了。
初学,能不能帮忙分析一下这段程序?哪怕大致呢,谢谢了
作者:
Y_G_G
时间:
2018-10-17 11:10
你看起来是一小段代码,但实际上这的工作量很大!
反汇编过来的东西,它都是直接用地址的,而不是像EA TR0 这样的寄存器名
而且,PIC的指令系统和51的是有很大区别的,它分好多个系列,12,16,18,8位机好像就这几个常用的,就算是一样系列的,比如常用的16系列,不同型号的单片机,连指令都是不同的,不像51,就那么多条指令。
而你这个像是18系列的,18系列的指令大多都是有三个操作数的,很难搞得明白的。
像这两条代码: 0006E MOVLW 0x46 ;把0X46这个立即数传送到W
00070 MOVWF 0xff6, ACCESS ;把W的值传送到0xff6这个地址,由ACCESS来决定是否快速操作RAM
问题在哪里?我都不知道0xff6这个地址是一个普通的地址还是“文件寄存器地址“(PIC自己叫的,实际上就是特殊寄存器)
我都不知道“速操作RAM”是什么意思,这个在C里面是自动指定的,在汇编里面是要自己去指定的。
你现在头大了吧?
我用过16F877A的汇编,了解那么多,我就装着很懂的样子,你再问的话,我也答不出别的什么来了。
作者:
3310mad2
时间:
2018-10-17 14:14
这个位置存放的是设备的串号,这段程序应该是从这里取出串号,运算出串号显示出来,不知道他是怎么算的,应该不是很复杂的算法
作者:
3310mad2
时间:
2018-10-17 15:04
这个存放设备串号的位置,我觉得这段程序是从这里读出数据,然后计算出串号,因为只是一段串号,不会有太复杂的加密,通过这段程序应该可以了解他的转换方法
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1