找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1899|回复: 5
收起左侧

请高手帮忙解读这段PIC单片机程序!

[复制链接]
ID:106272 发表于 2018-10-16 15:10 | 显示全部楼层 |阅读模式
下面程序是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

回复

使用道具 举报

ID:123289 发表于 2018-10-16 22:32 | 显示全部楼层
本帖最后由 yzwzfyz 于 2018-10-18 02:50 编辑

学单片机,一个极其重要方式就是,读通单片机的指令系统,读通了,单片机也就会了90%以上了。
回复

使用道具 举报

ID:106272 发表于 2018-10-17 09:00 | 显示全部楼层
yzwzfyz 发表于 2018-10-16 22:32
学单片机,一个极其重要方式就是,读能单片机的指令系统,读通了,单片机也就会了90%以上了。

初学,能不能帮忙分析一下这段程序?哪怕大致呢,谢谢了
回复

使用道具 举报

ID:401564 发表于 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的汇编,了解那么多,我就装着很懂的样子,你再问的话,我也答不出别的什么来了。
回复

使用道具 举报

ID:106272 发表于 2018-10-17 14:14 | 显示全部楼层

这个位置存放的是设备的串号,这段程序应该是从这里取出串号,运算出串号显示出来,不知道他是怎么算的,应该不是很复杂的算法
回复

使用道具 举报

ID:106272 发表于 2018-10-17 15:04 | 显示全部楼层

这个存放设备串号的位置,我觉得这段程序是从这里读出数据,然后计算出串号,因为只是一段串号,不会有太复杂的加密,通过这段程序应该可以了解他的转换方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表