找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2324|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)高手幫忙解讀這段PIC單片機(jī)程序!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:106272 發(fā)表于 2018-10-16 15:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面程序是PIC反匯編出來(lái),哪位高手幫忙看一下,能不能讀懂
  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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2018-10-16 22:32 | 只看該作者
本帖最后由 yzwzfyz 于 2018-10-18 02:50 編輯

學(xué)單片機(jī),一個(gè)極其重要方式就是,讀通單片機(jī)的指令系統(tǒng),讀通了,單片機(jī)也就會(huì)了90%以上了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:106272 發(fā)表于 2018-10-17 09:00 | 只看該作者
yzwzfyz 發(fā)表于 2018-10-16 22:32
學(xué)單片機(jī),一個(gè)極其重要方式就是,讀能單片機(jī)的指令系統(tǒng),讀通了,單片機(jī)也就會(huì)了90%以上了。

初學(xué),能不能幫忙分析一下這段程序?哪怕大致呢,謝謝了
回復(fù)

使用道具 舉報(bào)

地板
ID:401564 發(fā)表于 2018-10-17 11:10 | 只看該作者
你看起來(lái)是一小段代碼,但實(shí)際上這的工作量很大!
反匯編過(guò)來(lái)的東西,它都是直接用地址的,而不是像EA TR0 這樣的寄存器名
而且,PIC的指令系統(tǒng)和51的是有很大區(qū)別的,它分好多個(gè)系列,12,16,18,8位機(jī)好像就這幾個(gè)常用的,就算是一樣系列的,比如常用的16系列,不同型號(hào)的單片機(jī),連指令都是不同的,不像51,就那么多條指令。
而你這個(gè)像是18系列的,18系列的指令大多都是有三個(gè)操作數(shù)的,很難搞得明白的。
像這兩條代碼:  0006E   MOVLW 0x46   ;把0X46這個(gè)立即數(shù)傳送到W                          
                       00070   MOVWF 0xff6, ACCESS  ;把W的值傳送到0xff6這個(gè)地址,由ACCESS來(lái)決定是否快速操作RAM
問(wèn)題在哪里?我都不知道0xff6這個(gè)地址是一個(gè)普通的地址還是“文件寄存器地址“(PIC自己叫的,實(shí)際上就是特殊寄存器)
我都不知道“速操作RAM”是什么意思,這個(gè)在C里面是自動(dòng)指定的,在匯編里面是要自己去指定的。
你現(xiàn)在頭大了吧?
我用過(guò)16F877A的匯編,了解那么多,我就裝著很懂的樣子,你再問(wèn)的話,我也答不出別的什么來(lái)了。
回復(fù)

使用道具 舉報(bào)

5#
ID:106272 發(fā)表于 2018-10-17 14:14 | 只看該作者

這個(gè)位置存放的是設(shè)備的串號(hào),這段程序應(yīng)該是從這里取出串號(hào),運(yùn)算出串號(hào)顯示出來(lái),不知道他是怎么算的,應(yīng)該不是很復(fù)雜的算法
回復(fù)

使用道具 舉報(bào)

6#
ID:106272 發(fā)表于 2018-10-17 15:04 | 只看該作者

這個(gè)存放設(shè)備串號(hào)的位置,我覺(jué)得這段程序是從這里讀出數(shù)據(jù),然后計(jì)算出串號(hào),因?yàn)橹皇且欢未?hào),不會(huì)有太復(fù)雜的加密,通過(guò)這段程序應(yīng)該可以了解他的轉(zhuǎn)換方法
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表